个性化阅读
专注于IT技术分析

从WordPress自定义控件获取值的正确方法

我目前正在使用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', ), ));
赞(0)
未经允许不得转载:srcmini » 从WordPress自定义控件获取值的正确方法

评论 抢沙发

评论前必须登录!