WordPress管理画面のメニューを非表示にする方法をご紹介いたします。
特定のメニューを非表示にしたいとか、サブメニューだけ消したい、権限によって表示するメニューを制御したい、といったケースは結構あるのではないでしょうか。
今回はそんな時のために、管理画面からメニューを非表示にしてしまう方法を紹介したいと思います。
WordPress管理画面の不要なメニューを非表示にする方法
親メニューを非表示にする
管理画面のメニューを非表示にするには、以下のようなコードをfunctions.phpに追加します。
function remove_menus() {
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' ); //設定
}
add_action( 'admin_menu', 'remove_menus' );
remove_menu_pageの部分は、消したいメニューの行のみを記述してください。
サブメニューを非表示にする
サブメニューを非表示にしたい場合は以下のように記述します。
function remove_sub_menus() {
remove_submenu_page( 'index.php', 'index.php' ); //ダッシュボード - ホーム
remove_submenu_page( 'index.php', 'update-core.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_submenu_page( 'upload.php', 'upload.php' ); //メディア - ライブラリ
remove_submenu_page( 'upload.php', 'media-new.php' ); //メディア - 新規追加
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_submenu_page( 'themes.php', 'themes.php' ); //外観 - テーマ
remove_submenu_page( 'themes.php', 'customize.php?return=' . rawurlencode( $_SERVER['REQUEST_URI'] ) ); //外観 - カスタマイズ
remove_submenu_page( 'themes.php', 'nav-menus.php' ); //外観 - メニュー
remove_submenu_page( 'themes.php', 'widgets.php' ); //外観 - ウィジェット
remove_submenu_page( 'themes.php', 'theme-editor.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_submenu_page( 'users.php', 'users.php' ); //ユーザー - ユーザー一覧
remove_submenu_page( 'users.php', 'user-new.php' ); //ユーザー - 新規追加
remove_submenu_page( 'users.php', 'profile.php' ); //ユーザー - あなたのプロフィール
remove_submenu_page( 'tools.php', 'tools.php' ); //ツール - 利用可能なツール
remove_submenu_page( 'tools.php', 'import.php' ); //ツール - インポート
remove_submenu_page( 'tools.php', 'export.php' ); //ツール - エクスポート
remove_submenu_page( 'tools.php', 'site-health.php' ); //ツール - サイトヘルス
remove_submenu_page( 'tools.php', 'export_personal_data' ); //ツール - 個人データのエクスポート
remove_submenu_page( 'tools.php', 'remove_personal_data' ); //ツール - 個人データの消去
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' ); //設定 - パーマリンク設定
remove_submenu_page( 'options-general.php', 'options-privacy.php' ); //設定 - プライバシー
}
add_action( 'admin_menu', 'remove_sub_menus' );
function add_remove_sub_menus() {
remove_theme_support( 'custom-header' ); //外観 - ヘッダー
remove_theme_support( 'custom-background' ); //外観 - 背景
}
add_action( 'after_setup_theme', 'add_remove_sub_menus' );
プラグインのメニューを非表示にする
プラグインによって追加されるメニューは以下のようにして非表示にできます。
function remove_plugin_menus() {
remove_menu_page( 'wpcf7' ); //Contact Form 7
remove_menu_page( 'edit.php?post_type=mw-wp-form' ); //MW WP Form
remove_menu_page( 'aioseo' ); //All in One SEO
remove_menu_page( 'jetpack' ); //Jetpack
remove_menu_page( 'edit.php?post_type=acf-field-group' ); //Advanced Custom Fields
remove_menu_page( 'cptui_main_menu' ); //Custom Post Type UI
remove_menu_page( 'backwpup' ); //BackWPup
}
add_action( 'admin_menu', 'remove_plugin_menus' );
remove_menu_pageで指定する値は、各メニュー画面のURLから確認できます。例えば、Contact Form 7は「wp-admin/admin.php?page=wpcf7」というURLになっていますので、?page=以降の”wpcf7″を指定すれば非表示にできます。
ユーザー権限毎に非表示にするメニューを制御する
current_user_canと組み合わせることで、権限毎に非表示にするメニューを制御できます。例えば、”管理者以外”に適用したい場合は、以下のようにします。
function remove_menus() {
if ( !current_user_can('administrator') ) {
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' ); //設定
}
}
add_action( 'admin_menu', 'remove_menus' );
あとがき
かなり細かく制御が可能ですね。管理画面のメニューを非表示にしたい時は、ぜひ参考にしていただければ幸いです。