web-dev-qa-db-fra.com

Comment puis-je ajouter un fichier javascript à toutes les pages d'administration via un plugin?

Contexte: Pour les utilisateurs connectés, j'ajoute une chaîne de requête à l'URL afin qu'elle contourne le cache de Cloudflare. Ainsi, exemple.com devient exemple.com/?nocache=y, par exemple.

Je l'ai fait assez facilement avec le code suivant:

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');

Je peux voir le fichier dans la source, et cela fonctionne très bien sur les pages de couverture, mais pas sur le dernier bout du cours. Alors j'ai essayé:

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' );

Cette question a déjà été posée sous différentes formes et la structure de code ci-dessus est directement issue de nombreux exemples. Mais je ne peux pas le faire fonctionner en 4.7.2.

Cela doit être chargé à partir d'un plugin plutôt que d'un fichier functions.php. Que pourrais-je faire de mal? Le code n'apparaît pas dans la source HTML ni n'indique qu'il est chargé via la source d'inspection de Chrome.

2
user658182

Le manuel du développeur Plugin recommande d'utiliser plugins_url() pour créer l'URL du fichier JS. Essayez d'utiliser cette fonction dans votre chargeur de script et d'utiliser un autre descripteur pour le script, en fonction du contexte (par exemple, préfixer le nom du script admin avec "admin-") afin d'éviter un conflit d'enregistrement entre les scripts.

Vous pouvez également enregistrer le script une seule fois et le mettre en file d'attente si nécessaire sur les points d'ancrage.

1
Morgan Estes