web-dev-qa-db-ja.com

複数のプラグイン管理ページにJSを追加する

複数の管理画面を持つWPテーマ(それ自身のメインメニューといくつかのサブメニューを持っています)のために、私は共通のJsスクリプトを追加してこれらすべてのページをロードします。

私はこれを好む個々の(サブ)ページのページフックを使ってこれを達成する方法を知っています:

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

しかし、このように私は各管理ページ(各サブメニューpagehook)に対してこれを作り直す必要があります

スクリプトを追加してPARENTメニューをテストするより賢い方法はありますか?だから私はadmin_print_scripts- *コードの一行でそれを追加する必要があるように?

1
mikkelbreum

$parent_fileにフックされたコールバック内でadmin_print_scriptsに対して条件付きロジックを実行するのが最も簡単で、このような小さなことをします。

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 .. );
}

あなたはあなたの親ページのハンドルでmy-slugを取り替える必要があるでしょう、それはadd_menu_page..の4番目のパラメータです。

その後、スクリプトは親ページとそのすべての子ページの両方をエンキューします。

それが役立つことを願っています...

2
t31os