質問: 設定ページにのみプラグインjsを読み込むにはどうすればよいですか? 私はいくつかのデフォルトのワードプレス機能と競合しているプラグインを持っています。投稿とページの作成/編集エリア。自分の設定ページにある機能だけが必要です。 jsファイルを管理者にロードしても問題ありません。プラグの設定ページを表示していない限り、スクリプトを読み込まないように指示できますか?
回答: プラグインページ固有のスクリプトエンキューフックを使用する必要があります。編集するベストプラクティスの方法は、admin_enqueue_scripts-{hook}ではなくadmin_print_scirpts-{hook}を使用することです。しかし、あなたは特にあなた自身のプラグインの管理者ページをターゲットにしているので、どちらでも完璧です。避けるべきフックは "global" admin_print_scriptsです。元の呼び出しは次のようになります。 /* using registered $page handle to hook script load */ add_action('admin_print_scripts-' . $page, 'my_plugin_admin_scripts'); そして$pageフックを次のように定義します。$page = add_submenu_page( $args ); 回答はコピーされた 直接コーデックス外 :<?php add_action( 'admin_init', 'my_plugin_admin_init' ); add_action( 'admin_menu', 'my_plugin_admin_menu' ); function my_plugin_admin_init() { /* register our script. */ wp_register_script( 'my-plugin-script', plugins_url('/script.js', __file__) ); } function my_plugin_admin_menu() { /* register our plugin page */ $page = add_submenu_page( 'edit.php', // the parent page of this menu __( 'my plugin', 'myplugin' ), // the menu title __( 'my plugin', 'myplugin' ), // the page title 'manage_options', // the capability required for access to this item 'my_plugin-options', // the slug to use for the page in the url 'my_plugin_manage_menu' // the function to call to render the page ); /* using registered $page handle to hook script load */ add_action('admin_print_scripts-' . $page, 'my_plugin_admin_scripts'); } function my_plugin_admin_scripts() { /* * it will be called only on your plugin admin page, enqueue our script here */ wp_enqueue_script( 'my-plugin-script' ); } function my_plugin_manage_menu() { /* output our admin page */ } ?>