web-dev-qa-db-fra.com

ajouter JS à plusieurs pages d'administration de plugins

Pour un thème WP avec plusieurs écrans d’administrateur (avec son propre menu principal et certains sous-menus), je souhaite ajouter un script Js commun à charger (uniquement) sur toutes ces pages.

Je sais comment y parvenir en utilisant les crochets de page des pages individuelles, comme ceci:

add_action('admin_print_scripts-' . $page, 'my_plugin_admin_script');

mais de cette façon, je dois répéter cette opération pour chaque page d'administration (pour chaque pagehook de sous-menu)

Existe-t-il un moyen plus intelligent d’ajouter les scripts en testant le menu PARENT? de sorte que je dois juste l'ajouter avec une ligne de code admin_print_scripts- *?

1
mikkelbreum

Il serait plus facile d'exécuter une logique conditionnelle sur $parent_file à l'intérieur d'un rappel relié à admin_print_scripts, et irait un peu comme ça.

add_action( 'admin_print_scripts', 'possibly_enqueue_script' );
function possibly_enqueue_script() {
    global $parent_file;
    if( 'my-slug' == $parent_file )
        wp_enqueue_script(  ... your enqueue args .. );
}

Vous devrez remplacer my-slug par le descripteur de votre page parent, il s’agit du quatrième paramètre de add_menu_page...

Le script se mettra ensuite en file d'attente pour la page parent et pour l'une de ses pages enfants.

J'espère que cela pourra aider...

2
t31os