Guide

Radio Control

PHP Field Configuration Reference

Radio

Use this config when fieldType is radio.

1) Base Parameters

ParameterRequiredTypeDefaultChoicesDescription
fieldTypeYesstringradioradioSets control type.
nameYesstringSets control name. Use snake_case.
fieldLabelYesstringSets control label.
defaultNostringSets control default value.
requiredNoboolfalsetrue, falseSets control required.
disabledNoboolfalsetrue, falseSets control disabled.
hideLabelFromVisionNoboolfalsetrue, falseSets control hide label from vision.
fieldHelpTextNostringSets control help text.
classNameNostringSets control css class name.
fieldLabelPositionNostringtoptop, leftSets control label position.
fieldLabelTextTransformNostringuppercaseuppercase, capitalize, lowercaseSets control label text transform.

2) Radio Specific Parameters

ParameterRequiredTypeDefaultChoicesDescription
optionsNostringA fixed list, or a dynamic token resolved from WordPress data. Static format: "Option 1 : option_1, Option 2 : option_2". Dynamic tokens: {{posts}}, {{pages}}, {{users}}, {{categories}}, {{tags}}, {{menus}}, {{taxonomies}}, {{post_types}}, with optional REST API parameters (e.g. {{posts?type=book&per_page=100}}). See Dynamic Options.

Dynamic Options

options also accepts a {{token}} that is resolved from WordPress data, for example {{posts?type=book}} for a custom post type. A radio group renders a single page of REST results (10 by default, 100 at most), so use it for short lists and prefer combobox when the list is larger than one page. See Dynamic Options.

3) PHP Array Schema

Here is an example of how to use the radio control in a post meta configuration:

[
    'fieldType' => 'radio',
    'name' => 'post_radio',
    'fieldLabel' => 'Post Radio',
    'required' => false,
    'disabled' => false,
    'hideLabelFromVision' => false,
    'fieldHelpText' => 'Select one option.',
    'className' => 'custom-class',
    'fieldLabelPosition' => 'top',
    'fieldLabelTextTransform' => 'uppercase',
    'options' => 'Option 1 : option_1, Option 2 : option_2',
]

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'  => 'side',
        'meta_box_priority' => 'default',
        'fields'            => [
            [
            'fieldType' => 'radio',
            'name' => 'post_radio',
            'fieldLabel' => 'Post Radio',
            'required' => false,
            'disabled' => false,
            'hideLabelFromVision' => false,
            'fieldHelpText' => 'Select one option.',
            'className' => 'custom-class',
            'fieldLabelPosition' => 'top',
            'fieldLabelTextTransform' => 'uppercase',
            'options' => 'Option 1 : option_1, Option 2 : option_2',
            ],
        ],
    ];

    return $configs;
} );

4) Stored Value Type

Field TypeMeta Value Type
radiostring (selected option value)

Was this helpful?