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

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

「関数リファレンス/add menu page」の版間の差分

提供: WordPress Codex 日本語版
移動先: 案内検索
(パラメータ)
(未翻訳部分の和訳)
27行目: 27行目:
 
{{Parameter|$function|文字列|メニューページを表示する際に実行される関数|オプション|''なし''.}}  
 
{{Parameter|$function|文字列|メニューページを表示する際に実行される関数|オプション|''なし''.}}  
 
:''function''パラメータはオプションです。パラメータが指定されていない場合、WordPressはインクルードされるPHPファイルが関数を呼び出すことなく管理画面を生成することを前提としています。 ほとんどのプラグイン作者はプラグインファイル内の関数でページを生成しています。  
 
:''function''パラメータはオプションです。パラメータが指定されていない場合、WordPressはインクルードされるPHPファイルが関数を呼び出すことなく管理画面を生成することを前提としています。 ほとんどのプラグイン作者はプラグインファイル内の関数でページを生成しています。  
:このパラメータが指定された場合、''menu_slug''パラメタ―は任意の文字列を使用することが可能となります。これは''?page=my-super-plugin/admin-options.php''の代わりに''?page=my_super_plugin_page''のようなページの使用が可能になります。
+
:このパラメータが指定された場合、''menu_slug''パラメータは任意の文字列を使用することが可能となります。これは''?page=my-super-plugin/admin-options.php''の代わりに''?page=my_super_plugin_page''のようなページの使用が可能になります。
 
:関数は次のいずれかの方法で参照する必要があります:
 
:関数は次のいずれかの方法で参照する必要があります:
 
:# プラグイン内でクラスのメンバとして使用する場合は、<tt>array( $this, 'function_name' )</tt>と参照する必要があります。
 
:# プラグイン内でクラスのメンバとして使用する場合は、<tt>array( $this, 'function_name' )</tt>と参照する必要があります。
35行目: 35行目:
 
:* カスタムイメージを使用する場合、<tt>plugin_dir_url( __FILE__ )</tt>関数を使用して取得したプラグインディレクトリにイメージファイル名を追加し、指定することができます。
 
:* カスタムイメージを使用する場合、<tt>plugin_dir_url( __FILE__ )</tt>関数を使用して取得したプラグインディレクトリにイメージファイル名を追加し、指定することができます。
 
:アイコンは20×20ピクセル以下でなければなりません。
 
:アイコンは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+) 'dashicons-...'の場合、https://developer.wordpress.org/resource/dashicons/ から収集された [[Dashicon]] が表示されます。例えば、デフォルトの「歯車」のシンボルは 'dashicons-admin-generic' と明示的に指定することができます。
:* (WP 3.8+) If 'data:image/svg+xml;base64...', the specified SVG data image is used as a CSS background.
+
:* (WP 3.8+) 'data:image/svg+xml;base64...'の場合、CSS background として、指定されたSVGデータ画像が使用されます。
:* If 'none' (previously 'div'), the icon is replaced with an empty div you can style with CSS.
+
:* 'none' (以前は 'div')の場合、アイコンは、CSSでスタイル可能な空白の div と入れ替えられます。
:* If <nowiki>''</nowiki> (default), the "gear" [[Dashicon]] is shown (and <tt>menu-icon-generic</tt> is added to the CSS classes of the link).
+
:* <nowiki>''</nowiki> (デフォルト)の場合、歯車 [[Dashicon]] が表示されます。 (そして、<tt>menu-icon-generic</tt> がリンクのCSSクラスに追加されます。)
  
 
{{Parameter|$position|整数|メニューが表示される位置。省略時はメニュー構造の最下部に表示されます。大きい数値ほど下に表示されます。
 
{{Parameter|$position|整数|メニューが表示される位置。省略時はメニュー構造の最下部に表示されます。大きい数値ほど下に表示されます。
71行目: 71行目:
  
 
==戻り値==
 
==戻り値==
; <tt>文字列</tt> : $hookname used internally to track menu page callbacks for outputting the page inside the global <tt>$menu</tt> array
+
; <tt>文字列</tt> : グローバルな <tt>$menu</tt> 配列内でページを出力するためのメニューページコールバックの追跡に内部的に使われる$hookname
  
 
== 用例 ==
 
== 用例 ==
86行目: 86行目:
 
}
 
}
 
</pre>
 
</pre>
With this method the page-generating code should be located in myplugin/myplugin-admin.php:
+
このメソッドの場合、ページを生成するコードは myplugin/myplugin-admin.php に置かれている必要があります:
 
<pre>
 
<pre>
 
<?php echo "Admin Page Test"; ?>
 
<?php echo "Admin Page Test"; ?>
106行目: 106行目:
 
== 注 ==
 
== 注 ==
  
* 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 <tt>admin_menu</tt>.
+
* もし「このページにアクセスする権限がありません」エラーに出くわした場合、フックするのが早すぎるといことです。使用すべきフックは <tt>admin_menu</tt> です。
  
* If you only want to move existing admin menu items to different positions, you can use the <tt>admin_menu</tt> hook to unset menu items from their current positions in the global <tt>$menu</tt> and <tt>$submenu</tt> variables (which are arrays), and reset them elsewhere in the array.
+
* もし既存の管理者メニューのアイテムを別の場所に移動させたいだけの場合、<tt>admin_menu</tt> フックを使ってグローバルな <tt>$menu</tt> <tt>$submenu</tt> 変数(両方とも配列)内の現在の位置からメニューのアイテムを取り除き、配列の他の場所に設置することができます。
  
* 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.
+
* この関数は「権限」([[Roles and Capabilities]] 参照)を使用して、メニューにページが含まれるかどうかを決定しています。ページの出力を取り扱うためにフックされた関数も、ユーザーが要求される「権限」を持っているかどうかを検証しなければなりません。
  
* 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 <tt>option_page_capability_{$option_group}</tt>, where <tt>$option_group</tt> is the same as  <tt>option_group</tt> in <tt>[[関数リファレンス/register_setting()|register_setting()]] /[[:en:Function_Reference/register_setting()|en]]</tt>. Check out the [[Settings API]].  
+
* [[Settings API]] を使ってデータを保存していて、ユーザーが管理者以外である必要がある場合、<tt>$option_group</tt> <tt>[[関数リファレンス/register_setting()|register_setting()]] /[[:en:Function_Reference/register_setting()|en]]</tt> 内の <tt>option_group</tt> と同じである <tt>option_page_capability_{$option_group}</tt> フックを通じて権限の修正をする必要があります。[[Settings API]] を参照してください。.  
  
Example allowing an editor to save data:
+
編集者にデータを保存させる例:
  
 
<pre>
 
<pre>
// Register settings using the Settings API
+
// Settings APIを使って設定を登録
 
function register_my_setting() {
 
function register_my_setting() {
 
register_setting( 'my-options-group', 'my-option-name', 'intval' );  
 
register_setting( 'my-options-group', 'my-option-name', 'intval' );  
123行目: 123行目:
 
add_action( 'admin_init', 'register_my_setting' );
 
add_action( 'admin_init', 'register_my_setting' );
  
// Modify capability
+
// 権限の修正
 
function my_page_capability( $capability ) {
 
function my_page_capability( $capability ) {
 
return 'edit_others_posts';
 
return 'edit_others_posts';

2018年9月25日 (火) 21:18時点における版

このページ「関数リファレンス/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+) '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_groupregister_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にあります。


外部リソース



関連

管理メニューの追加


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