group Field

'type' => 'group'

Adds a group of fields.

If the main `field` parameter is set, a serialized array is created of all the fields in the group. Not including it saves all the fields as individual meta. Individual meta can easily be searched.
The `columns` field parameter is especially helpful in Field Groups for more complex layouts like address blocks.

Examples

piklist('field', array(
    'type' => 'group'
    ,'field' => 'address_group' // removing this parameter saves all fields as separate meta
    ,'label' => __('Address (Grouped)', 'piklist-demo')
    ,'list' => false
    ,'description' => __('A grouped field with the field parameter set.', 'piklist-demo')
    ,'fields' => array(
      array(
        'type' => 'text'
        ,'field' => 'address_1'
        ,'label' => __('Street Address', 'piklist-demo')
        ,'required' => true
        ,'columns' => 12
        ,'attributes' => array(
          'placeholder' => 'Street Address'
        )
      )
      ,array(
        'type' => 'text'
        ,'field' => 'address_2'
        ,'label' => __('PO Box, Suite, etc.', 'piklist-demo')
        ,'columns' => 12
        ,'attributes' => array(
          'placeholder' => 'PO Box, Suite, etc.'
        )
      )
      ,array(
        'type' => 'text'
        ,'field' => 'city'
        ,'label' => __('City', 'piklist-demo')
        ,'columns' => 5
        ,'attributes' => array(
          'placeholder' => 'City'
        )
      )
      ,array(
        'type' => 'select'
        ,'field' => 'state'
        ,'label' => __('State', 'piklist-demo')
        ,'columns' => 4
        ,'choices' => piklist_demo_get_states()
      )
      ,array(
        'type' => 'text'
        ,'field' => 'postal_code'
        ,'label' => __('Postal Code', 'piklist-demo')
        ,'columns' => 3
        ,'attributes' => array(
          'placeholder' => 'Postal Code'
        )
      )
    )
  ));

Usage

Display Grouped Fields

If the main field value is set for the group, unserialize the contents of the field like this:

$group_data = get_post_meta($post->ID, 'address_group', true);
$group_data = maybe_unserialize($group_data); // nice WP helper function to unserialize if needed
print_r($group_data); // output the results or loop through them with a `foreach` statement.

If the main field value is not set for the group, then each field is saved as separate meta. You can retrieve like this:

echo get_post_meta($post->ID, 'address_1', false);
echo get_post_meta($post->ID, 'address_2', false);
echo get_post_meta($post->ID, 'city', false);
echo get_post_meta($post->ID, 'state', false);
echo get_post_meta($post->ID, 'postal_code', false);

Have ideas for improving the documentation?

This documentation is a community effort. Please create an issue or pull request to help!

Improve this page