定制器-如何获得主题mod范围值?

时间:2016-11-02 作者:klewis

从customizer中,我希望获得选定范围值的值并显示该值,但运气不佳。对下面的代码有什么建议吗?

$wp_customize->add_setting( \'range_field_id1\', array(
  \'default\' => \'\',
  \'type\' => \'theme_mod\',
  \'capability\' => \'edit_theme_options\',
  \'transport\' => \'\',
  \'sanitize_callback\' => \'intval\',
) );

$wp_customize->add_control( \'range_field_id1\', array(
  \'type\' => \'range\',
  \'priority\' => 10,
  \'section\' => \'cta_primaryd_section2\',
  \'label\' => __( \'Range Field\', \'textdomain\' ),
  \'description\' => \'\',
\'input_attrs\' => array(
    \'min\' => 1,
    \'max\' => 100,
    \'step\' => 1,
    \'class\' => \'example-class\',
    \'style\' => \'color: #ff0022\',
    ),
));
我正在使用以下内容尝试查看我的内容中的价值。。。。

...
$content_mod = get_theme_mod(\'range_field_id1\');
return $content_mod;
...
但没有显示范围的运气。尽管如此,这个过程似乎对其他一切都有效。。。

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

通过更改sanitize_callback 返回整数值的自定义函数的值:

    $wp_customize->add_section( \'range\', array (
        \'title\'    => __( \'Range\', \'textdomain\' ),
        \'priority\' => 45,
    ) );

    $wp_customize->add_setting( \'range_field_id1\', array(
        \'default\' => \'\',
        \'type\' => \'theme_mod\',
        \'capability\' => \'edit_theme_options\',
        \'transport\' => \'\',
        \'sanitize_callback\' => \'wpse_intval\',
    ) );

    $wp_customize->add_control( \'range_field_id1\', array(
        \'type\' => \'range\',
        \'priority\' => 10,
        \'section\' => \'range\',
        \'label\' => __( \'Range Field\', \'textdomain\' ),
        \'description\' => \'\',
    \'input_attrs\' => array(
            \'min\' => 1,
            \'max\' => 100,
            \'step\' => 1,
            \'class\' => \'example-class\',
            \'style\' => \'color: #ff0022\',
            ),
    ));
我定义了简单wpse_intval() 自定义程序类之外的函数:

function wpse_intval( $value ) {
    return (int) $value;
}
我使用了原始问题中发布的相同代码来显示保存的值:

$content_mod = get_theme_mod(\'range_field_id1\');
var_dump( $content_mod );
在这一点上,我不确定为什么会发生这种情况,因为intval() 看起来应该有用。

迷你注意事项:Customizer Dev Tools 插件是一个方便的故障排除工具。

相关推荐

Admin Theme customization

我遵循wordpress codex网站上关于通过插件创建管理主题的说明。我激活了插件,但我的样式表没有包含在<head>.. 这是我的代码:add_action( \'admin_init\', \'kd_plugin_admin_init\' ); add_action( \'admin_menu\', \'kd_plugin_admin_menu\' ); function kd_plugin_admin_init() { /* Register