我目前正在使用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
我认为, 部分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', ), ));
评论前必须登录!
注册