The add_settings_field() WordPress PHP function is used to add a new field to a section of a settings page. It’s a part of the Settings API that allows you to define settings fields to appear within a section inside a settings page. The function also calls a callback function to output the HTML input tags for the setting field.
Usage
add_settings_field(
'myprefix_setting-id',
'This is the setting title',
'myprefix_setting_callback_function',
'general',
'myprefix_settings-section-name',
array( 'label_for' => 'myprefix_setting-id' )
);
In this example, a new setting field is added to the ‘general’ settings page under the ‘myprefix_settings-section-name’ section.
Parameters
- $id (string, required): Slug-name to identify the field. It is used in the ‘id’ attribute of tags.
- $title (string, required): Formatted title of the field. This is shown as the label for the field during output.
- $callback (callable, required): The function that fills the field with the desired form inputs. The function should echo its output.
- $page (string, required): The slug-name of the settings page on which to show the section (general, reading, writing, etc.).
- $section (string, optional): The slug-name of the section of the settings page in which to show the box. Default is ‘default’.
- $args (array, optional): Extra arguments that get passed to the callback function. For example,
label_forwhen supplied, the setting title will be wrapped in a<label>element. Its for attribute populated with this value.classis a CSS Class to be added to the<tr>element when the field is output.
More Information
See WordPress Developer Resources: add_settings_field()
Examples
Adding a Text Input Field
function text_input_callback($args) {
$value = get_option($args['id']);
echo '<input type="text" id="' . $args['id'] . '" name="' . $args['id'] . '" value="' . $value . '">';
}
add_settings_field(
'myprefix_text_input',
'Enter Text Here',
'text_input_callback',
'general'
);
In this example, a text input field is added to the ‘general’ settings page. The value of this field is retrieved from the WordPress database using the get_option() function.
Adding a Checkbox Field
function checkbox_callback($args) {
$value = get_option($args['id']);
$checked = $value ? 'checked' : '';
echo '<input type="checkbox" id="' . $args['id'] . '" name="' . $args['id'] . '" value="1" ' . $checked . '>';
}
add_settings_field(
'myprefix_checkbox',
'Check Here',
'checkbox_callback',
'general'
);
In this example, a checkbox is added to the ‘general’ settings page. If the checkbox is checked, the value will be ‘1’. If unchecked, the value will be ‘0’.
Adding a Select Field
function select_callback($args) {
$value = get_option($args['id']);
$options = ['Option 1', 'Option 2', 'Option