ダッシュボードのメニューを使いやすくカスタマイズする方法を数種類ご紹介します。プラグインで手軽に済ませるのも良いですが、出来るだけプラグインを使用せず、function.phpに追記する事でカスタマイズします。欲しいメニューの追加の方法、不要なメニューの非表示の方法です。
INDEX
共通事項
子テーマの中のfunction.phpを編集する訳ですが、失敗するとサイトが表示されない等のトラブルが出ます。必ずバックアップ(コピー)を取ってから作業して下さい。
メディアなら音符のアイコンなど、頭に付くアイコン一覧
※ 掲載の画像は英語版のwordpressの管理画面になっていますが、日本語であっても同様です。
メニュー項目を追加する(トップレベル)
「マニュアル」の項目を作ってみます。マニュアルだけ渡すと紛失したとか言われます。マニュアルを作って管理画面からリンクすれば便利ですね。トップレベル(メディア、コメントの様な親のみのメニュー)として作成します。
アイコンはdashicons-bookを選択、「4」は表示順で、一番上に表示されます。数字を大きくすると下に移動します。あとは、htmlでページの内容を書きます。
add_action('admin_menu', 'custom_menu_page');
function custom_menu_page()
{
add_menu_page('Manual', 'Manual', 'manage_options', 'custom_menu_page', 'add_custom_menu_page', 'dashicons-book', 4);
}
function add_custom_menu_page()
{
?>
<div class="wrap">
<h2>Manual</h2>
<a href="http://">マニュアルpdfを開く</a>
</div>
<?php
}
メニュー項目にサブレベルを追加する
上記のトップレベルの下に表示されるサブレベルの作成
先ほどのトップレベルのコードの下に追記します。
add_action('admin_menu', 'add_custom_submenu_page');
function add_custom_submenu_page()
{
add_submenu_page('custom_menu_page', 'ページタイトル1', 'サブ-1', 'manage_options', 'custom_submenu_page_1', 'add_custom_menu_page_1', 1);
add_submenu_page('custom_menu_page', 'ページタイトル2', 'サブ-2', 'manage_options', 'custom_submenu_page_2', 'add_custom_menu_page_2', 2);
}
function add_custom_menu_page_1()
{
?>
<div class="wrap">
<h2>ページタイトル1</h2>
</div>
<?php
}
function add_custom_menu_page_2()
{
?>
<div class="wrap">
<h2>ページタイトル2'</h2>
</div>
<?php
}
メニュー項目を非表示にする(トップレベル)
企業サイトなど、コメントが不要な事ってありますよね?
function remove_menus() {
remove_menu_page('edit-comments.php');//コメント
}
add_action('admin_menu','remove_menus');
コメント以外を非表示にしたいなら、一行を書き替えるだけでOKです。
remove_menu_page( 'index.php' ); // ダッシュボード
remove_menu_page( 'edit.php' ); // 投稿
remove_menu_page( 'upload.php' ); // メディア
remove_menu_page( 'edit.php?post_type=page' ); // 固定ページ
remove_menu_page( 'edit-comments.php' ); // コメント
remove_menu_page( 'themes.php' ); // 外観
remove_menu_page( 'plugins.php' ); // プラグイン
remove_menu_page( 'users.php' ); // ユーザー
remove_menu_page( 'tools.php' ); // ツール
remove_menu_page( 'options-general.php' ); // 設定
メニュー項目のサブレベルを非表示にする
function remove_menus() {
remove_submenu_page('edit.php','edit-tags.php?taxonomy=post_tag');//投稿>タグ
}
add_action('admin_menu','remove_menus');
消すべきページの探し方
remove_submenu_page('トップレベル.php','サブレベルのページ');
トップページレベル.phpは先ほどのリストを参照にして下さい。
サブレベルのページは、実際に該当ページを表示してURLを確認します。
応用:まとめて非表示にする
同じ事を複数回書く必要はありません。
function remove_menus() {
remove_menu_page('edit-comments.php');//コメント
remove_submenu_page('edit.php','edit-tags.php?taxonomy=post_tag');//投稿>タグ
}
add_action('admin_menu','remove_menus');
コメント ※ハンドルネームでお願いします