如何在wp-admin上运行外部脚本文件,如果是admin,如果是其他普通用户?

时间:2013-10-03 作者:ghaschel

我是WordPress插件的新手,我正在尝试加载一个外部JS/jQuery文件,其中包含一些我需要的脚本。它需要在wp admin页面中运行(激活时不只是一次)。有一个针对普通用户的JS文件和另一个针对管理员的JS文件。

function wp_ui_activation() {
}

register_activation_hook(__FILE__, \'wp_ui_activation\');

function wp_ui_deactivation() {
}

register_deactivation_hook(__FILE__, \'wp_ui_deactivation\');

add_action(\'wp_enqueue_scripts\', \'wp_ui_scripts\');

function wp_ui_scripts() {  
    wp_enqueue_script(\'jquery\'); //add jquery

    if (!is_admin()) { // it\'s not admin
        wp_register_script(\'custom_script\', plugins_url(\'assets/js/custom_script.js\', __FILE__),array(\'jquery\')); //register custom_script
        wp_enqueue_script(\'custom_script\'); //add custom_script
    }

    if(is_admin()){ // it\'s admin
        wp_register_script(\'custom_admin_script\', plugins_url(\'assets/js/custom_admin_script.js\', __FILE__),array(\'jquery\')); //registra custom_admin_script
        wp_enqueue_script(\'custom_admin_script\'); //add custom_admin_script
    }       
}
JS文件中的所有内容都是jQuery(function() {alert("admin")}); 和ajQuery(function() {alert("no-admin")}); 但是没有一个人出现。。。

我错过了什么?

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

您需要在上注册/排队管理脚本admin_enqueue_scripts, 未打开wp_enqueue_scripts. wp_enqueue_scripts 是前端挂钩。它不会在管理页面上运行。

其次is_admin() 只需检查页面是否为管理员页面,而不检查用户是否为管理员。要检查用户是否为管理员,请使用:

$current_user = wp_get_current_user();
if (user_can( $current_user, \'administrator\' )) {
  // user is an admin
}
参考:http://codex.wordpress.org/Function_Reference/user_can
http://codex.wordpress.org/Function_Reference/wp_get_current_user

结束

相关推荐

是否使用调用插件选项向wp_head添加javascript?

我正在尝试用wordpress编写一个插件,并且已经分阶段完成了这项工作,我知道如何将javascript添加到wp\\U头部,但是我不知道如何向插件选项添加多个函数调用。这是我第一次尝试编写插件,所以我知道我做错了。非常感谢您的反馈!如果我有: function tweet_feed_it() { echo \'<script type=\"text/javascript\"> $(document).ready(function() {