私はいくつかのデフォルトのワードプレス機能と競合しているプラグインを持っています。投稿とページの作成/編集エリア。自分の設定ページにある機能だけが必要です。 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 */
}
?>
あなたの生活をより簡単にし、コーディングをより速くするために(コアファイル検索は不要です)、"Current Admin Info"プラグインを書きました。
こうすれば、adminグローバルまたはget_current_screen()
関数から戻ってきたものを簡単に見ることができ、追加のコンテキストヘルプタブに表示されるプロパティを使用してアクセスできます。
// See dump
var_dump( get_current_screen()->property );
# @example
// Get the post type
$post_type = get_current_screen()->post_type;
// Get the current parent_file (main menu entry that meets for every submenu)
$parent = get_current_screen()->parent_file;