WP_LOCALIZE_SCRIPT与WordPress中的mce_外部_plugins

时间:2014-04-11 作者:jogesh_pi

我不确定这是否可能。

我可以使用wp_localize_script 具有mce_external_plugins 滤器

我想向tinymce插件脚本发送一个变量。例如:

add_filter( "mce_external_plugins", array( &$this, \'add_test_plugin\' ) );

public function add_test_plugin( $plugin_array ){

    global $pagenow;

    if( is_admin() && $pagenow == "post.php" || $pagenow == "post-new.php" ){
        $plugin_array[\'mytest\'] = plugin_dir_url(__FILE__) . \'/js/testing.js\';
        return $plugin_array;
    }

}
我必须发送一个变量到testing.js? 我如何做到这一点?

更新:

这是帮助我解决问题的链接Using post ID in custom tinyMCE button

2 个回复
SO网友:Douglas.Sesar

如果我理解正确;您只需要使Javascript变量可用于测试。js。

我认为用jQuery发送变量会很有用,就像在TinyMCE之前加载变量一样:

add_action(\'wp_enqueue_scripts\', \'YOUR_NAME_scripts\'); //back end

function YOUR_NAME_scripts( $hook_suffix ) {

        global $blog_id;
        $params = array(
            \'site_url\' => site_url(),
            \'admin_ajax_url\' => site_url() . \'/wp-admin/admin-ajax.php\',
            \'mytest\' => $whatever_variable_value


         );

            wp_localize_script( \'jquery\', \'YOUR_JAVASCRIPT_VARIABLE_HOLDER\', $params );

}
然后可以在测试中访问mytest变量。js,只需使用YOUR_JAVASCRIPT_VARIABLE_HOLDER.mytest 脚本中的任意位置。

SO网友:user89675

mce\\U external\\U插件过滤器挂钩上的WordPress文档建议使用两个过滤器挂钩将变量添加到测试中。js:admin\\U负责人。php和admin\\u head-post-new。phphttps://codex.wordpress.org/Plugin_API/Filter_Reference/mce_external_plugins

以下是示例:

foreach ( array(\'post.php\',\'post-new.php\') as $hook ) {
     add_action( "admin_head-$hook", \'my_admin_head\' );
}

/**
 * Localize Script
 */
function my_admin_head() {
    $plugin_url = plugins_url( \'/\', __FILE__ );
    ?>
<!-- TinyMCE Shortcode Plugin -->
<script type=\'text/javascript\'>
var my_plugin = {
    \'url\': \'<?php echo $plugin_url; ?>\',
};
</script>
<!-- TinyMCE Shortcode Plugin -->
    <?php
}

结束

相关推荐