Превью в кастомайзере не обновляет значение get_option() корректно
У меня есть настройка в index.php
if(get_option('cb2_blog_home')){
cb_get_blog_links();
}
Этот код позволяет включать и выключать блог на главной странице. Функция cb_get_blog_links() выводит список кратких описаний постов блога.
В кастомайзере у меня есть чекбокс для установки значения cb2_blog_home. Однако он не работает. Создается впечатление, что опция всегда имеет значение true.
Есть идеи, почему так происходит?
Внутри этой функции есть несколько переменных, которые я также настраиваю через кастомайзер. Они все работают идеально.
Вот полный код кастомайзера. Все работает прекрасно, кроме настройки домашнего блога. Единственное, что приходит в голову - это то, что одна является функцией, а другие - переменными внутри функции.
function cb_customize_register($wp_customize){
$wp_customize->add_section('cb_customizer_blog', array(
'title' => __('Настройки блога темы', 'Theme'),
'priority' => 120,
));
//Показать/скрыть ссылки на блог на главной
$wp_customize->add_setting('cb2_blog_home', array(
'default' => '',
'capability' => 'edit_theme_options',
'type' => 'option',
));
$wp_customize->add_control('cb2_blog_home', array(
'label' => __('Включить блог на главной', 'Theme'),
'section' => 'cb_customizer_blog',
'settings' => 'cb2_blog_home',
'type' => 'checkbox',
'priority' => 125,
));
//Количество постов на главной
$wp_customize->add_setting('cb2_blog_home_count', array(
'default' => '3',
'capability' => 'edit_theme_options',
'type' => 'option',
));
$wp_customize->add_control('cb2_blog_home_count', array(
'label' => __('Количество постов на главной', 'Theme'),
'section' => 'cb_customizer_blog',
'settings' => 'cb2_blog_home_count',
'priority' => 130,
));
//Показать/скрыть заголовок блога на главной
$wp_customize->add_setting('cb2_blog_home_title_hide', array(
'default' => '',
'capability' => 'edit_theme_options',
'type' => 'option',
));
$wp_customize->add_control('cb2_blog_home_title_hide', array(
'label' => __('Скрыть заголовок блога', 'Theme'),
'section' => 'cb_customizer_blog',
'settings' => 'cb2_blog_home_title_hide',
'type' => 'checkbox',
'priority' => 135,
));
//Показать/скрыть автора в блоге
$wp_customize->add_setting('cb2_blog_index_author', array(
'default' => '',
'capability' => 'edit_theme_options',
'type' => 'option',
));
$wp_customize->add_control('cb2_blog_index_author', array(
'label' => __('Скрыть автора в блоге', 'Theme'),
'section' => 'cb_customizer_blog',
'settings' => 'cb2_blog_index_author',
'type' => 'checkbox',
'priority' => 140,
));
//Показать/скрыть дату в блоге
$wp_customize->add_setting('cb2_blog_index_date', array(
'default' => '',
'capability' => 'edit_theme_options',
'type' => 'option',
));
$wp_customize->add_control('cb2_blog_index_date', array(
'label' => __('Скрыть дату в блоге', 'Theme'),
'section' => 'cb_customizer_blog',
'settings' => 'cb2_blog_index_date',
'type' => 'checkbox',
'priority' => 145,
));
}
add_action('customize_register', 'cb_customize_register');

Вы используете тип option для хранения ваших настроек.
Customizer не сохраняет значения по умолчанию в базе данных, пока пользователь не нажмет на сохранение.
