PHP Field Configuration Reference
Group
Use this config when fieldType is group.
A group is a container field that visually groups other fields together. It does not store its own meta value, but the fields it contains do.
1) Base Parameters
| Parameter | Required | Type | Default | Choices | Description |
|---|---|---|---|---|---|
fieldType |
Yes | string |
group |
group |
Sets control type. |
name |
Yes | string |
Sets control name. Use snake_case. | ||
fieldLabel |
Yes | string |
Sets control label. | ||
hideLabelFromVision |
No | bool |
false |
true, false |
Sets control hide label from vision. |
fieldHelpText |
No | string |
Sets control help text. | ||
className |
No | string |
Sets control css class name. | ||
fieldLabelPosition |
No | string |
top |
top, left |
Sets control label position. |
fieldLabelTextTransform |
No | string |
uppercase |
uppercase, capitalize, lowercase |
Sets control label text transform. |
2) Group Specific Parameters
| Parameter | Required | Type | Default | Choices | Description |
|---|---|---|---|---|---|
layout |
No | string |
flex |
flex, grid |
Select layout of the Group field. |
columns |
No | int |
3 |
Column count for grid layout. Only used when layout is grid. |
|
direction |
No | string |
columnRow |
row, columnRow, column |
Flex direction. columnRow is a responsive row that stacks on small screens. Only used when layout is flex. |
justify |
No | string |
space-between |
flex-start, center, flex-end, space-between, space-around, space-evenly |
Justify content alignment. Only used when layout is flex and direction is not column. |
3) PHP Array Schema
Here is an example of how to use the group control in a post meta configuration:
[
'fieldType' => 'group',
'name' => 'post_group',
'fieldLabel' => 'Post Group',
'hideLabelFromVision' => false,
'fieldHelpText' => 'Group of related fields.',
'className' => 'custom-class',
'fieldLabelPosition' => 'top',
'fieldLabelTextTransform' => 'uppercase',
'layout' => 'flex',
'direction' => 'columnRow',
'justify' => 'space-between',
'fields' => [
// child fields go here
],
]
3) Hook-Based Example (Post Meta Config)
It is available to use this control in post meta fields, term meta fields and user settings page and options page fields.
Available hooks:
- native_custom_fields_post_meta_fields
- native_custom_fields_term_meta_fields
- native_custom_fields_user_meta_fields
- native_custom_fields_options_page_fields
add_filter( 'native_custom_fields_post_meta_fields', function( array $configs ): array {
$post_type = 'book';
if ( ! isset( $configs[ $post_type ] ) || ! is_array( $configs[ $post_type ] ) ) {
$configs[ $post_type ] = [
'post_type' => $post_type,
'sections' => [],
];
}
$configs[ $post_type ]['sections'][] = [
'meta_box_id' => 'post_options',
'meta_box_title' => 'Post Options',
'meta_box_context' => 'normal',
'meta_box_priority' => 'default',
'fields' => [
[
'fieldType' => 'group',
'name' => 'post_group',
'fieldLabel' => 'Post Group',
'hideLabelFromVision' => false,
'fieldHelpText' => 'Group of related fields.',
'className' => 'custom-class',
'fieldLabelPosition' => 'top',
'fieldLabelTextTransform' => 'uppercase',
'layout' => 'flex',
'direction' => 'columnRow',
'justify' => 'space-between',
'fields' => [
[
'fieldType' => 'text',
'name' => 'child_text_field',
'fieldLabel' => 'Child Text Field',
],
],
],
],
];
return $configs;
} );
4) Stored Value Type
| Field Type | Meta Value Type |
|---|---|
| group | N/A (container field — child fields store their own meta values individually) |
