如何在提交表单时使用wp_enqueue_script()添加本地脚本?

时间:2016-02-07 18:47:07

标签: javascript php wordpress

我正在创建一个wordpress插件,在插件设置页面上,用户可以在文本区域添加一些内联脚本,然后点击保存

我想获得用户提交的脚本并在主题的页眉/页脚中排队

我试过这个 - 但是当我点击管理页面上的提交而不是前端时添加脚本

if(isset($_POST['submit']))
{
    // Enqueued script with localized data.
    wp_register_script( 'mapkitchenhandle', plugins_url( 'js/script.js', __FILE__ ) ); 

    wp_localize_script( 'mapkitchenhandle', 'trackcode', array('track' => $_POST['mapkitchentrackingcode']) );
    wp_enqueue_script( 'mapkitchenhandle');
}

任何人都可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

在帖子上你应该将这些数据保存到选项表中:

if (isset($_POST['submit']) && isset($_POST['mapkitchentrackingcode'])) {
    update_option('mapkitchentrackingcode', sanitize_text_field($_POST['mapkitchentrackingcode']));
}

我建议您在使用之前清除$_POST个变量。我没有在这里打扰过。

然后联系wp_enqueue_scripts操作,检查是否设置了此mapkitchentrackingcode选项,并将其添加到wp_localize_script()

function wp_1231_enqueue_scripts()
{
    wp_register_script('mapkitchenhandle', plugins_url('js/script.js', __FILE__)); 

    if (false !== $trackingCode = get_option('mapkitchentrackingcode')) {
        wp_localize_script('mapkitchenhandle', 'trackcode', array('track' => $trackingCode));    
    }

    wp_enqueue_script('mapkitchenhandle');
}
add_action('wp_enqueue_scripts', 'wp_1231_enqueue_scripts');