WordPress定制器中的JavaScript

时间:2017-02-17 作者:Rang

自定义程序代码:

$wp_customize->add_setting (
    \'script-code\',
    array (
        \'default\' => esc_html__( \'Script Code\', \'x\' ),
        \'sanitize_callback\' => \'wp_kses_post\'
    )
);

$wp_customize->add_control (
    new WP_Customize_Control (
        $wp_customize,
        \'script-code\',
        array (
            \'label\' => esc_html__( \'Script Code\', \'x\' ),
            \'section\' => \'script\',
            \'settings\' => \'script-code\',
            \'type\' => \'textarea\',
            \'priority\' => 1
        )
    )
);
来自Customizer的照片:

enter image description here

从输出代码:

<?php echo wp_kses_post(get_theme_mod(\'script-code\')); ?>
从输出中,返回空:

<main class="script-code">
</main>
如何在Customizer textarea设置字段中使用脚本标记?

非常感谢。

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

这是因为您正在使用wp_kses_post 要清理输出数据,请尝试不使用它:

<?php echo get_theme_mod( \'script-code\'); ?>
同时从此处删除:

$wp_customize->add_setting (
    \'script-code\',
    array (
        \'default\' => esc_html__( \'Script Code\', \'x\' ),
        \'sanitize_callback\' => \'\' // remove wp_kses_post
    )
); 
此外,请确保您使用的主题模块名称正确,您可以通过两种方式进行检查:

1.-做一个var_dump(get_theme_mods()); 检查其命名方式。

2.-检查HTML 自定义程序中控件的代码

enter image description here

这个id 不带前缀customize-control- 是主题mod的名称。