Всем привет, вообщем я создал в кастомайзере секцию и в нее добавил select, выглядит это таким образом.
$wp_customize->add_section( "theme_page" , array(
'title' => "Выбор страницы",
'priority' => 21)
);
$wp_customize->add_setting( 'theme_page_value', array(
'capability' => 'edit_theme_options',
'sanitize_callback' => 'themeslug_sanitize_select',
'default' => 'value1',
));
$wp_customize->add_control( 'theme_page_value', array(
'type' => 'select',
'section' => 'theme_page',
'label' => ( 'Выберите страницу' ),
'choices' => array(
'value1' => ( 'Главная' ),
'value2' => ( 'О нас' ),
'value3' => ( 'Наши услуги' ),
'value4' => ( 'Портфолио' ),
'value5' => ( 'Корзина' ),
'value6' => ( 'Другие услуги' ),
'value7' => ( 'Базовые услуги' ),
),
));
А таким образом я пытаюсь получить значение:
<?php echo get_theme_mod('theme_page_value'); ?>
Но почему-то я всегда получаю value1, так же почему-то кастомайзер выводит предупреждение: Неверное значение.
Что я делаю не так?
P.s. Я искал похожие ситуации в интернете, но отыскать решения не получилось...
Оказалось что я пропустил функцию. В конечном итоге мой код пришел к такому виду:
$wp_customize->add_section( "theme_page" , array(
'title' => "Выбор страницы",
'priority' => 21)
);
$wp_customize->add_setting( 'theme_page_value', array(
'capability' => 'edit_theme_options',
'sanitize_callback' => 'theme_page_select',
'default' => 'value1',
));
$wp_customize->add_control( new WP_Customize_Control(
$wp_customize,
'theme_page_value',
array(
'label' => __( 'Dark or light theme version?', 'theme_name' ),
'section' => 'theme_page',
'settings' => 'theme_page_value',
'type' => 'select',
'choices' => array(
'value1' => __( 'Главная' ),
'value2' => __( 'О нас' ),
'value3' => __( 'Наши услуги' ),
'value4' => __( 'Портфолио' ),
'value5' => __( 'Корзина' ),
'value6' => __( 'Другие услуги' ),
'value7' => __( 'Базовые услуги' )
),
)
));
function theme_page_select( $input, $setting ) {
$input = sanitize_key( $input );
$choices = $setting->manager->get_control( $setting->id )->choices;
return ( array_key_exists( $input, $choices ) ? $input : $setting->default );
}
Может, кому пригодится.
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости