在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()
, 我的自定义设置/控件未显示在数组中。
最合适的回答,由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\' );
希望它能帮助你。