如何通过插件向所有管理页面添加一个javascript文件?

时间:2017-06-07 作者:user658182

上下文:对于登录的用户,我将向url附加一个查询字符串,以便绕过Cloudflare的缓存。所以,举个例子。com成为示例。com/?例如,nocache=y。

我用以下代码很容易地完成了这一点:

function tbcloudflare_query_arg() {   
if(is_user_logged_in()){
        wp_enqueue_script( \'tbcloudflare_check_query\', plugin_dir_url( __FILE__ ) . \'js/tbcloudflare.js\', array(\'jquery\'), \'1.0\' );
     }
 }
 add_action(\'wp_enqueue_scripts\', \'tbcloudflare_query_arg\');
我可以在源代码中看到该文件,它在前端页面上效果很好,但在后端当然不行。所以,我试着:

function tbcloudflare_admin_query_arg($hook){
    wp_enqueue_script( \'tbcloudflare_check_query\', plugin_dir_url( __FILE__ ) . \'js/tbcloudflare.js\', array(\'jquery\'), \'1.0\' );
}
add_action(\'admin_enqueue_scripts\', \'tbcloudflare_admin_query_arg\' );
以前有人以各种形式提出过这个问题,上面的代码结构直接来自许多示例。但我无法在4.7.2中使用它。

这必须从插件加载,而不是从函数加载。php文件。我会做错什么?该代码不会显示在html源代码中,也不会显示它是通过Chrome的inspect源代码加载的。

1 个回复
SO网友:Morgan Estes

这个Plugin Developer Handbook 建议使用plugins_url() 创建JS文件的URL。尝试在脚本加载器中使用该函数,并根据上下文对脚本使用不同的句柄(例如在管理脚本名称前加上“admin-”),以避免脚本注册冲突。

或者,您可以只注册一次脚本,并在需要时将其排入队列挂钩。

结束

相关推荐

如何解决多个文件的“消除上面的呈现阻塞的JavaScript和CSS”的内容?

我在google insight中查看我的网站时发现:还行吧?但我仍在考虑修复Eliminate render-blocking JavaScript and CSS in above-the-fold content 在手机上也能取得好的效果。我正在使用以下代码添加CSS、JS文件:/* loading the default styles of the theme */ function theme_style_sheets() { wp_enqueue_style( \'go