如何在定制器中打印自定义控件的值?

时间:2019-01-02 作者:cag8f

在WordPress管理区域的Customizer部分,我添加了自定义设置和自定义控件。我现在要打印此控件的值。我该怎么做?用于添加自定义设置/控件的代码如下(来自WordPress customize_register() page):

function themename_customize_register($wp_customize){
        $wp_customize->add_setting( \'test_setting\', array(
            \'default\'        => \'value_xyz\',
            \'capability\'     => \'edit_theme_options\',
            \'type\'           => \'option\',
        ));
        $wp_customize->add_control( \'test_control\', array(
            \'label\'      => __(\'Text Test\', \'themename\'),
            \'section\'    =>  \'spacious_slider_number_section1\',
            \'settings\'   => \'test_setting\',
        ));
}
add_action(\'customize_register\', \'themename_customize_register\');
文本输入字段在自定义程序中按预期显示(screenshot). 现在,我想在加载页面的PHP模板时回显这个文本输入字段的值。但当我尝试这样做时,会返回一个空值。添加到页面PHP模板中的代码如下:

echo get\\u theme\\u mod(\'test\\u setting\');

此外,类型似乎是布尔型的(而不是我所期望的字符串),即。gettype(get_theme_mod(\'test_setting\'); 退货boolean.

最后,如果我打印get_theme_mods(), 我的自定义设置/控件未显示在数组中。

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

你的代码很完美,只需更改\'theme_mod\' 而不是\'option\' 它会解决这个问题。

function themename_customize_register($wp_customize){
        $wp_customize->add_setting( \'test_setting\', array(
            \'default\'        => \'value_xyz\',
            \'capability\'     => \'edit_theme_options\',
            \'type\'           => \'theme_mod\',
        ));
        $wp_customize->add_control( \'test_control\', array(
            \'label\'      => __(\'Text Test\', \'themename\'),
            \'section\'    =>  \'spacious_slider_number_section1\',
            \'settings\'   => \'test_setting\',
        ));
}
add_action(\'customize_register\', \'themename_customize_register\');
并检索它

get_theme_mod( \'test_setting\' ); 
希望它能帮助你。

相关推荐