WordPressを利用したシステムで、管理画面をカスタマイズしたい、という時があります。
今回は特に、管理画面の左側にあるメニュー部分のカスタマイズについてまとめました。
function.phpの任意の場所で、以下のように書くと管理画面で反映されます。
function.php
1 2 3 4 5 6 | function customize_menu () { カスタマイズしたい内容 } add_action('admin_menu', 'remove_menus'); |
そして、メニューの各項目には番号が振られていて、その番号順に並んでいます。これはグローバル変数 $menu に格納されています。
管理画面のメニュー
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | [2] ダッシュボード [4] 【スペース】 [5] 投稿 [10] メディア [15] リンク [20] 固定ページ [25] コメント [59] 【スペース】 [60] 外観 [65] プラグイン [70] ユーザー [75] ツール [80] 設定 [99] 【スペース】 |
さて、以上の前置きを頭に入れていただいて、肝心のカスタマイズするための書き方ですが、
1、追加系
1 2 3 4 | add_menu_page('このメニューのリンク先ページタイトル', 'メニュー表示名', 'ユーザレベル', 'メニューをクリックしたときの動作', 'コンテンツ表示関数', 'アイコンURL', '配置番号'); |
「コンテンツ表示関数」と「アイコンURL」は空でかまいません。「配置番号」は、グローバル変数 $menu での表示順の設定です。例えば、
例
1 2 3 | add_menu_page('テストタイトル', 'テストメニュー', 10, 'test.php','' ,'' ,3); |
2、削除系
1 2 3 | remove_menu_page('メニューのスラッグ'); |
「メニューのスラッグ」は、【そのメニューをクリックした先のURLの wp-admin/ 以降】、と設定されています。例えば、「固定ページ」を消したいのであれば、
例
1 2 3 | remove_menu_page('edit.php?post_type=page'); |
のように書くことができます。
また、グローバル変数を用いて表示していることを利用して、
ダッシュボードを消す例
1 2 3 | unset($menu[2]); |
3、変更系
1 2 3 4 5 | $menu[2][0] = '最初のページだよ'; // ダッシュボートの名前変更 $menu[3] = $menu[20]; // 固定ページの場所移動 unset($menu[20]); |
表示名を変更したいとか、位置を変更したい場合は、グローバル変数 $menu を利用すると楽です。
上記の変更の結果は以下の通りです。
南本貴之