Guide

Border Control

PHP Field Configuration Reference

Border

Use this config when fieldType is border.

1) Base Parameters

ParameterRequiredTypeDefaultChoicesDescription
fieldTypeYesstringborderborderSets 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) Border Specific Parameters

ParameterRequiredTypeDefaultChoicesDescription
sizeNostringdefaultdefault, __unstable-largeSets control size.
disableCustomColorsNoboolfalsetrue, falseToggles the ability to choose custom colors.
disableUnitsNoboolfalsetrue, falseControls whether unit selection should be disabled.
enableAlphaNoboolfalsetrue, falseControls whether the alpha channel will be offered when selecting custom colors.
enableStyleNobooltruetrue, falseControls whether to support border style selections.
isCompactNoboolfalsetrue, falseRenders the control with a more compact appearance, restricting its width.
shouldSanitizeBorderNobooltruetrue, falseIf no width or color is selected, the border style is also cleared and undefined is returned.
withSliderNoboolfalsetrue, falseRenders an additional RangeControl for more control over border width.
colorsNostringJSON array of color objects for the color palette. Example: [{"color": "#72aee6", "name": "Blue 20"}]

3) PHP Array Schema

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

[
    'fieldType' => 'border',
    'name' => 'post_border',
    'fieldLabel' => 'Post Border',
    'required' => false,
    'disabled' => false,
    'hideLabelFromVision' => false,
    'fieldHelpText' => 'Set border style.',
    'className' => 'custom-class',
    'fieldLabelPosition' => 'top',
    'fieldLabelTextTransform' => 'uppercase',
    'size' => 'default',
    'disableCustomColors' => false,
    'disableUnits' => false,
    'enableAlpha' => false,
    'enableStyle' => true,
    'isCompact' => false,
    'shouldSanitizeBorder' => true,
    'withSlider' => false,
    'colors' => '[{"color": "#72aee6", "name": "Blue 20"}, {"color": "#3582c4", "name": "Blue 40"}]',
]

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'       => 'design_settings',
        'meta_box_title'    => 'Design Settings',
        'meta_box_context'  => 'side',
        'meta_box_priority' => 'default',
        'fields'            => [
            [
            'fieldType' => 'border',
            'name' => 'post_border',
            'fieldLabel' => 'Post Border',
            'required' => false,
            'disabled' => false,
            'hideLabelFromVision' => false,
            'fieldHelpText' => 'Set border style.',
            'className' => 'custom-class',
            'fieldLabelPosition' => 'top',
            'fieldLabelTextTransform' => 'uppercase',
            'size' => 'default',
            'disableCustomColors' => false,
            'disableUnits' => false,
            'enableAlpha' => false,
            'enableStyle' => true,
            'isCompact' => false,
            'shouldSanitizeBorder' => true,
            'withSlider' => false,
            'colors' => '[{"color": "#72aee6", "name": "Blue 20"}, {"color": "#3582c4", "name": "Blue 40"}]',
            ],
        ],
    ];

    return $configs;
} );

4) Stored Value Type

Field TypeMeta Value Type
borderstring (serialized JSON, for example "{"color":"#72aee6","style":"solid","width":"1px"}")

Was this helpful?