WordPress

【WordPress】管理メニューの削除、表示順の変更方法【コピペ】

 

WordPressサイトを納品する、WordPress管理メニューに関する要望が出る場合があります。

先日経験したのが以下のような要望でした。

  • クライアントに不要なものはメニューから削除
  • よく使う項目は上部に表示(表示順変更)

 

確かに、WordPressの管理メニューをカスタマイズすることで、普段の更新作業を直感的にこなすことができ、クライアントの満足度は上がるかもしれません。

 

よくあるパターンかもしれないので、忘備録として記録しておきます。

 

管理メニューの削除

function remove_menus() {
//remove_menu_page('index.php');//ダッシュボード
//remove_submenu_page('index.php','index.php');//ダッシュボード>ホーム
//remove_submenu_page('index.php','update-core.php');//ダッシュボード>更新
//remove_menu_page('separator1');//セパレータ1
//remove_menu_page('edit.php');//投稿
//remove_submenu_page('edit.php','edit.php');//投稿>投稿一覧
//remove_submenu_page('edit.php','post-new.php');//投稿>新規投稿
//remove_submenu_page('edit.php','edit-tags.php?taxonomy=category');//投稿>カテゴリー
//remove_submenu_page('edit.php','edit-tags.php?taxonomy=post_tag');//投稿>タグ
//remove_menu_page('upload.php');//メディア
//remove_submenu_page('upload.php', 'upload.php');//メディア>ライブラリ
//remove_submenu_page('upload.php', 'media-new.php');//メディア>新規追加
//remove_menu_page('edit.php?post_type=page');//固定ページ
//remove_submenu_page('edit.php?post_type=page', 'edit.php?post_type=page');//固定ページ>固定ページ一覧
//remove_submenu_page('edit.php?post_type=page', 'post-new.php?post_type=page');//固定ページ>新規追加
//remove_menu_page('edit-comments.php');//コメント
//remove_menu_page('separator2');//セパレータ2
//remove_menu_page('themes.php');//外観
//remove_submenu_page('themes.php', 'themes.php');//外観>テーマ
//remove_submenu_page('themes.php', 'customize.php?return=%2Finformation%2Fwp-admin%2Fthemes.php');//外観>カスタマイズ
//remove_submenu_page('themes.php', 'widgets.php');//外観>ウィジェット
//remove_submenu_page('themes.php', 'nav-menus.php');//外観>メニュー
//remove_submenu_page('themes.php', 'theme-editor.php');//外観>テーマの編集
//remove_menu_page('plugins.php');//プラグイン
//remove_submenu_page('plugins.php', 'plugins.php');//プラグイン>インストール済プラグイン
//remove_submenu_page('plugins.php', 'plugin-install.php');//プラグイン>新規追加
//remove_submenu_page('plugins.php', 'plugin-editor.php');//プラグイン>プラグイン編集
//remove_menu_page('users.php');//ユーザー
//remove_submenu_page('users.php', 'users.php');//ユーザー>ユーザー一覧
//remove_submenu_page('users.php', 'user-new.php');//ユーザー>新規追加
//remove_submenu_page('users.php', 'profile.php');//ユーザー>あなたのプロフィール
//remove_menu_page('tools.php');//ツール
//remove_submenu_page('tools.php', 'tools.php');//ツール>利用可能なツール
//remove_submenu_page('tools.php', 'import.php');//ツール>インポート
//remove_submenu_page('tools.php', 'export.php');//ツール>エクスポート
//remove_menu_page('options-general.php');//設定
//remove_submenu_page('options-general.php', 'options-general.php');//設定>一般
//remove_submenu_page('options-general.php', 'options-writing.php');//設定>投稿設定
//remove_submenu_page('options-general.php', 'options-reading.php');//設定>表示設定
//remove_submenu_page('options-general.php', 'options-discussion.php');//設定>ディスカッション
//remove_submenu_page('options-general.php', 'options-media.php');//設定>メディア
//remove_submenu_page('options-general.php', 'options-permalink.php');//設定>パーマリンク設定
}
add_action('admin_menu','remove_menus');

functions.php

 

admin_menu関数を使って、管理メニューの追加や削除が行えます。

今回は、削除を行いますので、remove_menu_pageアクションでページを非表示にしていきます。

主要なページを記述してあり、コメントアウトしてあるので、必要に応じて使用してください。

使い方

function remove_menus() {
 remove_menu_page('edit-comments.php');//コメント
 remove_menu_page('plugins.php');//プラグイン
 remove_menu_page('options-general.php');//設定
}
add_action('admin_menu','remove_menus');

 

例えば、このコードをfunctions.phpに貼り付けると、以下の3つのメニューが非表示になります。

  • コメント
  • プラグイン
  • 設定

 

(補足)ページ追加

function edit_menu_page() {
    $siteurl = 'post.php?post=1073&action=edit';
}
function edit_admin_menu() {
    add_menu_page( '任意の固定ページ', '任意の固定ページ', 'read', 'post.php?post=1073&action=edit');
}
add_action( 'admin_menu', 'edit_admin_menu' );

functions.php

 

ちなみに、ページを追加する場合はadd_menu_pageを使いますが、詳細はCODEXを確認してください。

 

 

管理メニューの表示順変更

function custom_menu_order($menu_ord) {
	if (!$menu_ord) return true;
	
	return array(
		'index.php', // ダッシュボード
		'separator1', // 最初の区切り線
		'edit.php', // 投稿
		'upload.php', // メディア
		'link-manager.php', // リンク
		'edit.php?post_type=page', // 固定ページ
		'edit-comments.php', // コメント
		'separator2', // 二つ目の区切り線
		'themes.php', // 外観
		'plugins.php', // プラグイン
		'users.php', // ユーザー
		'tools.php', // ツール
		'options-general.php', // 設定
		'separator-last', // 最後の区切り線
	);
}
add_filter('custom_menu_order', 'custom_menu_order'); // Activate custom_menu_order
add_filter('menu_order', 'custom_menu_order');

functions.php

注意点としては、例えばここでダッシュボードをコメントアウトして保存すると、管理メニューの一番下に表示されてしまいます。

つまり、指定がないメニューは一番下になるということなので、注意ですね。

 

よくあるパターンは、

コメントやプラグインなど、不要な機能や触られては困るメニューについては非表示にしておくことが多いので、覚えておきたいコードの一つですね。