Description
The color
field type creates an input field in the admin panel for selecting colors. It is rendered as an HTML <input type="color">
element styled with Bootstrap’s form-control class, typically providing a native browser color picker. This field is ideal for capturing color values, such as theme colors or design preferences, stored in hexadecimal format (e.g., #ff0000
).
Available Options
Parameter | Type | Description | Required | Default |
---|---|---|---|---|
name |
String | The name of the field, used as the identifier and default label if label is not provided. |
Yes | – |
type |
String | The field type. Must be set to color . |
Yes | – |
label |
String | The display label for the color field. If not provided, the name is used. |
No | name |
placeholder |
String | A hint displayed in the field when it is empty, guiding the user on expected input. | No | name |
default |
String/Boolean | The default color value in hexadecimal format (e.g., #ff0000 ). If set to false , the field defaults to #000000 in most browsers. |
No | false |
class |
String | Additional CSS classes to apply to the color input for custom styling or JavaScript targeting. | No | – |
help |
String | A help message displayed in a sidebar or tooltip when the user clicks the info icon next to the field. | No | – |
required |
Boolean | If true , the field is marked as required, adding the HTML required attribute. Note that browsers typically enforce a valid hex color. |
No | false |
Note: The color
field is stored in the settings array as a sanitized string in hexadecimal format (e.g., #ff0000
), using WordPress’s sanitize_hex_color
function, which ensures a valid color value or returns an empty string if invalid.
Example
Below is an example of how to define a color
field in the $fields
array for the Reusable Admin Panel settings class.
$this->fields = array(
'general' => array(
array(
'name' => __('Theme Color', 'your-plugin-slug'),
'type' => 'color',
'label' => __('Primary Theme Color', 'your-plugin-slug'),
'default' => '#ff0000',
'class' => 'theme-color-input',
'help' => __('Select the primary color for the theme.', 'your-plugin-slug'),
'required' => true
)
)
);
This configuration will create a color field labeled “Primary Theme Color” under the “general” section. It will default to #ff0000
(red), include the CSS class theme-color-input
, display a help message, and be marked as required.
Usage Notes
- The
color
field uses WordPress’ssanitize_hex_color
for sanitization, ensuring the input is a valid hexadecimal color (3 or 6 digits, with a leading#
). Invalid inputs are sanitized to an empty string. - The field’s ID is automatically generated as
{section}-{name}
, wherename
is sanitized usingsanitize_title
. - The field is styled using Bootstrap’s
form-control
class, though the native color picker appearance varies by browser. Custom styles can be applied via theclass
parameter. - The
required
attribute ensures a color is selected, triggering browser validation. Since browsers typically enforce valid hex colors, this is rarely an issue. - The
type="color"
attribute enables native browser color pickers on supported devices, falling back to a text input on others. - To retrieve the value of a color field, use the
get_option
method, e.g.,$this->get_option('general', 'theme-color')
.