WordPress管理画面の不要なメニューを非表示にする方法

WordPress管理画面の不要なメニューを非表示にする方法

WordPress管理画面の不要なメニューを非表示にする方法

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' );

あとがき

かなり細かく制御が可能ですね。管理画面のメニューを非表示にしたい時は、ぜひ参考にしていただければ幸いです。

この記事が気に入ったら
いいね!してね♪

Twitter で

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です