Guide

Number Control

PHP Field Configuration Reference

Number

Use this config when fieldType is number.

1) Base Parameters

ParameterRequiredTypeDefaultChoicesDescription
fieldTypeYesstringnumbernumberSets 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) Number Specific Parameters

ParameterRequiredTypeDefaultChoicesDescription
minNointMinimum value for the field. Default is -infinity.
maxNointMaximum value for the field. Default is infinity.
stepNoint1Amount by which the value is changed when incrementing/decrementing.
shiftStepNointAmount to increment by when the SHIFT key is held down. Default is 10.
dragDirectionNostringnn, e, s, wDetermines the drag axis to increment/decrement the value.
spinControlsNostringnativenative, custom, noneThe type of spin controls to display.
isShiftStepEnabledNobooltruetrue, falseIf true, pressing UP or DOWN with the SHIFT key will increment by shiftStep value.
isDragEnabledNoboolfalsetrue, falseIf true, enables mouse drag gesture to increment/decrement the number value.
dragThresholdNointThe amount of px to drag before the value changes. Only relevant if isDragEnabled is true.

3) PHP Array Schema

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

[
    'fieldType' => 'number',
    'name' => 'post_number',
    'fieldLabel' => 'Post Number',
    'required' => false,
    'disabled' => false,
    'hideLabelFromVision' => false,
    'fieldHelpText' => 'Enter a numeric value.',
    'className' => 'custom-class',
    'fieldLabelPosition' => 'top',
    'fieldLabelTextTransform' => 'uppercase',
    'min' => 0,
    'max' => 100,
    'step' => 1,
    'spinControls' => 'native',
    'isShiftStepEnabled' => true,
    'isDragEnabled' => false,
]

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' => 'number',
            'name' => 'post_number',
            'fieldLabel' => 'Post Number',
            'required' => false,
            'disabled' => false,
            'hideLabelFromVision' => false,
            'fieldHelpText' => 'Enter a numeric value.',
            'className' => 'custom-class',
            'fieldLabelPosition' => 'top',
            'fieldLabelTextTransform' => 'uppercase',
            'min' => 0,
            'max' => 100,
            'step' => 1,
            'spinControls' => 'native',
            'isShiftStepEnabled' => true,
            'isDragEnabled' => false,
            ],
        ],
    ];

    return $configs;
} );

4) Stored Value Type

Field TypeMeta Value Type
numberstring (numeric value stored as string, for example "42")

Was this helpful?