- 赤色のリンクは、まだ日本語Codexに存在しないページ・画像です。英語版と併せてご覧ください。(詳細)
関数リファレンス/add menu page
このページ「関数リファレンス/add menu page」は一部未翻訳です。和訳や日本語情報を加筆してくださる協力者を求めています。
説明
トップレベルメニューの追加。
具体的には、管理者メニューのサイドバーに新しいトップレベルのメニューのセクションを作成し、リンクされたメニューのページが要求されたときにページの内容を出力するための関数をコールバックしフックを登録します。 $hooknameを返します。
使い方
<?php add_menu_page( $page_title, $menu_title, $capability, $menu_slug, $function, $icon_url, $position ); ?>
パラメータ
- $page_title
- (文字列) (必須) メニューが選択されたときにページのタイトルタグに表示されるテキスト
- 初期値: なし
- $menu_title
- (文字列) (必須) メニューに表示されるテキスト
- 初期値: なし
- $menu_slug
- (文字列) (必須) メニューのスラッグ名(一意である必要があります)。
- Version 3.0以前は file (or handle) パラメータと呼ばれていました。
- functionパラメータパラメータが省略された場合、menu_slugはメニューページを表示するPHPファイルまたはハンドルである必要があります。
- 初期値: なし
- $function
- (文字列) (オプション) メニューページを表示する際に実行される関数
- 初期値: なし.
- functionパラメータはオプションです。パラメータが指定されていない場合、WordPressはインクルードされるPHPファイルが関数を呼び出すことなく管理画面を生成することを前提としています。 ほとんどのプラグイン作者はプラグインファイル内の関数でページを生成しています。
- このパラメータが指定された場合、menu_slugパラメータは任意の文字列を使用することが可能となります。これは?page=my-super-plugin/admin-options.phpの代わりに?page=my_super_plugin_pageのようなページの使用が可能になります。
- 関数は次のいずれかの方法で参照する必要があります:
- プラグイン内でクラスのメンバとして使用する場合は、array( $this, 'function_name' )と参照する必要があります。
- 他のケースでは、関数名自体を使用すれば十分です。
- $icon_url
- (文字列) (オプション) メニューのアイコン
- 初期値: 空の文字列
- カスタムイメージを使用する場合、plugin_dir_url( __FILE__ )関数を使用して取得したプラグインディレクトリにイメージファイル名を追加し、指定することができます。
- アイコンは20×20ピクセル以下でなければなりません。
- (WP 3.8+) 'dashicons-...'の場合、https://developer.wordpress.org/resource/dashicons/ から収集された Dashicon が表示されます。例えば、デフォルトの「歯車」のシンボルは 'dashicons-admin-generic' と明示的に指定することができます。
- (WP 3.8+) 'data:image/svg+xml;base64...'の場合、CSS background として、指定されたSVGデータ画像が使用されます。
- 'none' (以前は 'div')の場合、アイコンは、CSSでスタイル可能な空白の div と入れ替えられます。
- '' (デフォルト)の場合、歯車 Dashicon が表示されます。 (そして、menu-icon-generic がリンクのCSSクラスに追加されます。)
- $position
- (整数) (オプション) メニューが表示される位置。省略時はメニュー構造の最下部に表示されます。大きい数値ほど下に表示されます。
- 注意: 2つのメニューが同じ位置を指定している場合、片方のみ表示され上書きされる可能性があります。衝突のリスクは整数値でなく小数値を使用することで回避することができます。
- 例: 63の代わりに63.3(コード内ではクォートを使用('63.3'))
- 初期値: メニュー構造の最下部
- 2 - ダッシュボード
- 4 - (セパレーター)
- 5 - 投稿
- 10 - メディア
- 15 - リンク
- 20 - 固定ページ
- 25 - コメント
- 59 - (セパレーター)
- 60 - 外観(テーマ)
- 65 - プラグイン
- 70 - ユーザー
- 75 - ツール
- 80 - 設定
- 99 - (セパレーター)
ネットワーク管理者メニューでは、値が異なります。:
- 2 - ダッシュボード
- 4 - (セパレーター)
- 5 - 参加サイト
- 10 - ユーザー
- 15 - テーマ
- 20 - プラグイン
- 25 - 設定
- 30 - 更新
- 99 - (セパレーター)
戻り値
- 文字列
- グローバルな $menu 配列内でページを出力するためのメニューページコールバックの追跡に内部的に使われる$hookname
用例
管理者権限ユーザー向けに、WordPressの管理メニューにカスタムメニュー項目を追加します。
例 1:
add_action( 'admin_menu', 'register_my_custom_menu_page' ); function register_my_custom_menu_page() { add_menu_page( 'custom menu title', 'custom menu', 'manage_options', 'myplugin/myplugin-admin.php', '', plugins_url( 'myplugin/images/icon.png' ), 6 ); }
このメソッドの場合、ページを生成するコードは myplugin/myplugin-admin.php に置かれている必要があります:
<?php echo "Admin Page Test"; ?>
例 2:
add_action( 'admin_menu', 'register_my_custom_menu_page' ); function register_my_custom_menu_page(){ add_menu_page( 'custom menu title', 'custom menu', 'manage_options', 'custompage', 'my_custom_menu_page', plugins_url( 'myplugin/images/icon.png' ), 6 ); } function my_custom_menu_page(){ echo "Admin Page Test"; }
注
- もし「このページにアクセスする権限がありません」エラーに出くわした場合、フックするのが早すぎるといことです。使用すべきフックは admin_menu です。
- もし既存の管理者メニューのアイテムを別の場所に移動させたいだけの場合、admin_menu フックを使ってグローバルな $menu と $submenu 変数(両方とも配列)内の現在の位置からメニューのアイテムを取り除き、配列の他の場所に設置することができます。
- この関数は「権限」(Roles and Capabilities 参照)を使用して、メニューにページが含まれるかどうかを決定しています。ページの出力を取り扱うためにフックされた関数も、ユーザーが要求される「権限」を持っているかどうかを検証しなければなりません。
- Settings API を使ってデータを保存していて、ユーザーが管理者以外である必要がある場合、$option_group が register_setting() /en 内の option_group と同じである option_page_capability_{$option_group} フックを通じて権限の修正をする必要があります。Settings API を参照してください。.
編集者にデータを保存させる例:
// Settings APIを使って設定を登録 function register_my_setting() { register_setting( 'my-options-group', 'my-option-name', 'intval' ); } add_action( 'admin_init', 'register_my_setting' ); // 権限の修正 function my_page_capability( $capability ) { return 'edit_others_posts'; } add_filter( 'option_page_capability_my-options-group', 'my_page_capability' );
更新履歴
ソースファイル
add_menu_page()は wp-admin/includes/plugin.php
にあります。
外部リソース
- http://log.noiretaya.com/206 http://log.noiretaya.com/206 http://log.noiretaya.com/206 WordPress 管理画面にメニュー項目を追加する
- http://gatespace.jp/2013/12/19/wordpress-3-8-dashboard-icon/WordPress 3.8 テーマやプラグインでダッシュボードメニューのアイコンを設定する方法
関連
管理メニュー:
add_menu_page(),
remove_menu_page(),
add_submenu_page() /en,
remove_submenu_page() /en,
add_dashboard_page() /en,
add_posts_page() /en,
add_media_page() /en,
add_links_page() /en,
add_pages_page() /en,
add_comments_page() /en,
add_theme_page() /en,
add_plugins_page() /en,
add_users_page() /en,
add_management_page() /en,
add_options_page()
最新英語版: WordPress Codex » Function Reference/add_menu_page (最新版との差分)