Get_Theme_mod()仅在定制器打开时才起作用

时间:2017-05-27 作者:Timothy Fisher

我正在使用Customizer API启用/禁用网站的不同部分。

当我打开customizer窗口时,似乎get_theme_mod() 正在返回值ok。但是只要我saveclose customizer窗口,get_theme_mod() 不返回任何内容。

我看到了一些关于使用的其他问题type="option"get_option() 但我想看看我能不能把这件事做好。

我的设置如下所示:

$wp_customize->add_setting( \'my_banner_setting\', array(
    \'default\'           => \'1\',
    \'sanitize_callback\' => \'my_sanitize_checkbox\',
) );
然后我得到如下结果:

if ( get_theme_mod( \'my_banner_setting\' ) == 1 ) {

    get_template_part( \'sections/banner\' );

}
我有什么遗漏吗?

1 个回复
最合适的回答,由SO网友:Timothy Fisher 整理而成

看起来我可以通过在get_theme_mod()

if (  get_theme_mod(\'my_banner_setting\', 1) == 1 ) {

    // proceed

}
不确定是否有其他解决方案,但这解决了它。

update

看起来这实际上是因为我的“1”在引号中,删除引号有效,并且我不必在中声明默认值get_theme_mod() 再一次

$wp_customize->add_setting( \'my_banner_setting\', array(
    \'default\'           => 1,
    \'sanitize_callback\' => \'my_sanitize_checkbox\',
) );

结束

相关推荐