When registering controls in Kirki, they are saved as theme_mods
by default.
If you choose to save your settings as options, you can do so by passing the option_type
argument to all controls like so:
'option_type' => 'option',
When switching the option_type
from theme_mods
to option
, it is important that you also pass an option_name
to keep things organized. If no specific option_name
is given, the settings
value will be used as the option name.
In the example below, the first 2 color fields will save their values in a single option (all_my_options
). The third control will save a separate option in the database named my_standalone_option
while the 4th example doesn’t specify an option name and therefore will use kirki_demo_color_hex_3
as the option name.
/**
* Value will be saved under 'all_my_options' in the database.
*/
new \Kirki\Field\Color(
[
'option_type' => 'option',
'option_name' => 'all_my_options',
'settings' => 'kirki_demo_color_hex_1',
'label' => __( 'Hex Color 1', 'kirki' ),
'section' => 'color_section',
'default' => '#0008DC',
]
);
/**
* Value will be saved under 'all_my_options' in the database.
*/
new \Kirki\Field\Color(
[
'option_type' => 'option',
'option_name' => 'all_my_options',
'settings' => 'kirki_demo_color_hex_2',
'label' => __( 'Hex Color 2', 'kirki' ),
'section' => 'color_section',
'default' => '#0008DC',
]
);
/**
* Value will be saved under 'my_standalone_option' in the database.
*/
new \Kirki\Field\Color(
[
'option_type' => 'option',
'option_name' => 'my_standalone_option',
'settings' => 'kirki_demo_color_hex_3',
'label' => __( 'Hex Color 3', 'kirki' ),
'section' => 'color_section',
'default' => '#0008DC',
]
);
/**
* Value will be saved under 'kirki_demo_color_hex_3' in the database as no option_name is provided.
*/
new \Kirki\Field\Color(
[
'option_type' => 'option',
'settings' => 'kirki_demo_color_hex_3',
'label' => __( 'Hex Color 3', 'kirki' ),
'section' => 'color_section',
'default' => '#0008DC',
]
);