web-dev-qa-db-fra.com

Comment faire pour exécuter un fichier JavaScript externe sur wp-admin si admin, et autre si utilisateur normal?

Je connais les plugins WordPress et j'essaie de charger un fichier JS/jQuery externe avec certains scripts dont j'ai besoin. Il doit être exécuté dans la page wp-admin (pas seulement une fois lorsqu'il est activé). Il existe un fichier JS pour un utilisateur commun et un autre pour l'administrateur.

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
    }       
}

Tout ce qui réside dans le fichier JS est une jQuery(function() {alert("admin")}); et une jQuery(function() {alert("no-admin")}); mais aucune d'entre elles ne s'affiche ...

Qu'est-ce que je rate?

1
ghaschel

Vous devez enregistrer/mettre en file d'attente vos scripts d'administrateur sur admin_enqueue_scripts et non sur wp_enqueue_scripts. wp_enqueue_scripts est un crochet avant. Il ne fonctionnera pas sur les pages d'administration.

Deuxièmement, is_admin() vérifie simplement si la page est une page d’administrateur et non si l’utilisateur est un administrateur. Pour vérifier si l'utilisateur est un administrateur, utilisez:

$current_user = wp_get_current_user();
if (user_can( $current_user, 'administrator' )) {
  // user is an admin
}

Référence:

http://codex.wordpress.org/Function_Reference/user_can
http://codex.wordpress.org/Function_Reference/wp_get_current_user

3
s_ha_dum