我目前正在使用Wordpress主题, 并尝试添加自定义设置控件。我有一个functions.php, 在其中添加这样的设置和控件:
//=============================
//= Radio Input=
//=============================
$wp_customize->
add_setting('radio_input', array(
'default'=>
'value2', 'capability'=>
'edit_theme_options', 'type'=>
'theme_mod', ));
$wp_customize->
add_control('themename_color_scheme', array(
'label'=>
__('Radio Input', 'themename'), 'section'=>
'themename_color_scheme', 'settings'=>
'radio_input', 'type'=>
'radio', 'choices'=>
array(
'value1' =>
'Choice 1', 'value2' =>
'Choice 2', 'value3' =>
'Choice 3', ), ));
而且有效。我可以在Wordpress的主题定制器中选择该选项。现在, 我要签入主文档, 选择了哪个选项-但是我没有得到任何值。这是回显选择数组的代码。
<
?php
echo get_theme_mod('radio_input');
?>
而且, 即使更改设置类型(复选框, 文本输入, 下拉菜单), 我也永远不会获得任何值。如果我回显一个字符串(出于测试目的), 我将看到该字符串, 但无法从设置控件中获取值。我在这里做错了什么?
先感谢你!
#1【从WordPress自定义控件获取值的正确方法】我认为, 部分ID和控件ID应该不同。在你的代码中是相同的:
// CONTROL ID HERE IS THE SAME, AS SECTION ID 'themename_color_scheme'
$wp_customize->
add_control('themename_color_scheme', array(
'label'=>
__('Radio Input', 'themename'), 'section'=>
'themename_color_scheme', // SECTION ID
'settings'=>
'radio_input', 'type'=>
'radio', 'choices'=>
array(
'value1' =>
'Choice 1', 'value2' =>
'Choice 2', 'value3' =>
'Choice 3', ), ));
适用于我:(这应有助于” 经典” 控件类型, 例如文本)
//=============================
//= Text Input=
//=============================
$wp_customize->
add_setting('__UNIQUE_SETTING_ID__', array(// <
-- Setting id
'capability'=>
'edit_theme_options', 'type'=>
'theme_mod', ));
$wp_customize->
add_control('__UNIQUE_CONTROL_ID__', array(// <
-- Control id
'label'=>
__('Text Input', 'themename'), 'section'=>
'__UNIQUE_SECTION_ID__', // <
-- Section id
'settings'=>
'__UNIQUE_SETTING_ID__'// Refering to the settings id
));
!但是!在选择类型的情况下(无线电类型可能是相同的情况), 我仍然没有获得价值。这篇文章对我有所帮助, 其中控件ID与设置ID相同:
//=============================
//= Select Input=
//=============================
$wp_customize->
add_setting('__UNIQUE_SETTING_ID__', array(// <
-- Setting id
'default'=>
'value2', 'capability'=>
'edit_theme_options', 'type'=>
'theme_mod', ));
$wp_customize->
add_control('__UNIQUE_SETTING_ID__', array(// <
-- THE SAME Setting id
'label'=>
__('Select Input', 'themename'), 'section'=>
'__UNIQUE_SECTION_ID__', // <
-- Section id
// 'settings'=>
'__UNIQUE_SETTING_ID__', // Ignoring settings id here
'type'=>
'select', 'choices'=>
array(
'value1'=>
'Choice 1', 'value2'=>
'Choice 2', 'value3'=>
'Choice 3', ), ));
推荐阅读
- 通过模板名称查询WordPress中的页面
- 解析错误(语法错误,文件结尾意外,但没有错误[关闭])
- 在WordPress中设置偏移量时分页不起作用
- 从主题wordpress覆盖wedevs-dokan-plugin模板文件
- 覆盖表格样式,WordPress主题[关闭]
- 在每个帖子上显示元关键字和说明
- (第240行的C:\xampp\htdocs\wordpress\wp-includes\class-wp-http-curl.php中的最大执行时间超过60秒)
- 使用wp-rest api登录wordpress网站
- shell脚本之awk编辑器