Code
Currently, I'm working project to automatically generate all my theme customizer options with simple array.
'nav_font_style' => array(
'default_options' => array(
1 => 'default',),
'css' => " nav#for-mobile h1 { font-family: $",
'stylesheet_handle' => 'semperfi-navigation',
'label' => __('Font', 'semper-fi-lite'),
'description' => array(
1 => '', ),
'panel_title' => __('Navigation', 'semper-fi-lite'),
'panel_priority' => 1,
'priority' => 10,
'section_title' => __('Menu Title', 'semper-fi-lite'),
'section_priority' => 10,
'selector' => 'nav#for-mobile h1',
'type' => 'font'),
This array has everything needed to generate a theme option. Bellow is the loop that it will run through.
// Add a font selector to Customizer
if ($values['type'] == 'font') {
$wp_customize->add_setting( $option . '_' . $i, array(
'default' => 'Default',
'sanitize_callback' => 'semperfi_sanitize_css', ) );
$wp_customize->add_control( $option . '_' . $i . '_control', array(
'section' => str_replace( "~", $semperfi_customizer_multi_dimensional_array[$i], $section_title_transformed ),
'label' => $values['label'],
'description' => $values['description'][$i],
'priority' => $values['priority'],
'type' => 'select',
'settings' => $option . '_' . $i,
'stylesheet_handle' => $values['stylesheet_handle'],
'choices' => $finalized_google_font_array));
}
When I go the sanitize_callback I'm having issues using this to access all the choices like it's explained on How to get input_attrs in the sanitize function?
function semperfi_sanitize_css( $input , $setting ) {
set_theme_mod( 'semperfi_testing' , $setting->manager->get_control( 'nav_font_style_1' )->input_attrs );
return $input;
}
The above sanitize function is just for testing but I really need to access the handle so that I can apply CSS to the correct sheet style.
Thanks for your help!