• 赤色のリンクは、まだ日本語Codexに存在しないページ・画像です。英語版と併せてご覧ください。(詳細

このWikiはいつでも誰でも編集できます

関数リファレンス/add menu page

提供: WordPress Codex 日本語版
移動先: 案内検索

このページ「関数リファレンス/add menu page」は一部未翻訳です。和訳や日本語情報を加筆してくださる協力者を求めています

説明

トップレベルメニューの追加。

具体的には、管理者メニューのサイドバーに新しいトップレベルのメニューのセクションを作成し、リンクされたメニューのページが要求されたときにページの内容を出力するための関数をコールバックしフックを登録します。 $hooknameを返します。

使い方

 <?php add_menu_page( $page_title, $menu_title, $capability, $menu_slug, $function, $icon_url, $position ); ?>

パラメータ

$page_title
文字列) (必須) メニューが選択されたときにページのタイトルタグに表示されるテキスト
初期値: なし
$menu_title
文字列) (必須) メニューに表示されるテキスト
初期値: なし
$capability
文字列) (必須) メニューを表示するために必要な権限ユーザーレベルは非推奨となっており、ここでは使用すべきではありません。
初期値: なし
$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のようなページの使用が可能になります。
関数は次のいずれかの方法で参照する必要があります:
  1. プラグイン内でクラスのメンバとして使用する場合は、array( $this, 'function_name' )と参照する必要があります。
  2. 他のケースでは、関数名自体を使用すれば十分です。
$icon_url
文字列) (オプション) メニューのアイコン
初期値: 空の文字列
  • カスタムイメージを使用する場合、plugin_dir_url( __FILE__ )関数を使用して取得したプラグインディレクトリにイメージファイル名を追加し、指定することができます。
アイコンは20×20ピクセル以下でなければなりません。
  • (WP 3.8+) If 'dashicons-...', a Dashicon is shown from the collection at https://developer.wordpress.org/resource/dashicons/. For example, the default "gear" symbol could be explicitly specified with 'dashicons-admin-generic'.
  • (WP 3.8+) If 'data:image/svg+xml;base64...', the specified SVG data image is used as a CSS background.
  • If 'none' (previously 'div'), the icon is replaced with an empty div you can style with CSS.
  • If '' (default), the "gear" Dashicon is shown (and menu-icon-generic is added to the CSS classes of the link).
$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 - (セパレーター)

戻り値

文字列 
$hookname used internally to track menu page callbacks for outputting the page inside the global $menu array

用例

管理者権限ユーザー向けに、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 );

}

With this method the page-generating code should be located in 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";	
}

  • If you're running into the "You do not have sufficient permissions to access this page" error, then you've hooked too early. The hook you should use is admin_menu.
  • If you only want to move existing admin menu items to different positions, you can use the admin_menu hook to unset menu items from their current positions in the global $menu and $submenu variables (which are arrays), and reset them elsewhere in the array.
  • This function takes a 'capability' (see Roles and Capabilities) which will be used to determine whether or not a page is included in the menu. The function which is hooked in to handle the output of the page must check that the user has the required 'capability' as well.
  • If you are using the Settings API to save data, and need the user to be other than the administrator, will need to modify the permissions via the hook option_page_capability_{$option_group}, where $option_group is the same as option_group in register_setting() /en. Check out the Settings API.

Example allowing an editor to save data:

// Register settings using the Settings API 
function register_my_setting() {
	register_setting( 'my-options-group', 'my-option-name', 'intval' ); 
} 
add_action( 'admin_init', 'register_my_setting' );

// Modify capability
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にあります。


外部リソース



関連

管理メニューの追加


管理メニュー: 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最新版との差分