WordPressの管理画面を開くと、左側にずらりと並んだメニューが目に入りますよね。「ダッシュボード」「投稿」「メディア」「固定ページ」など、たくさんの項目があります。
でも、実際に使っているのは一部だけということはありませんか?
特にクライアントさんにWordPressを納品するとき、使わない機能が表示されていると「これは何?」「触って大丈夫?」と不安にさせてしまうことも。また、誤って設定を変更されてしまうリスクもあります。
この記事では、そんな悩みを解決する「WordPressダッシュボードのメニューを非表示にする方法」を詳しく解説していきます。プラグインを使う方法とコードで設定する方法、両方をご紹介しますので、あなたに合った方法を選んでくださいね。
WordPressダッシュボードメニューを非表示にする理由

まず、なぜメニューを非表示にする必要があるのか、具体的な理由を見ていきましょう。
クライアントの誤操作を防ぐため
WordPressに詳しくないクライアントさんが管理画面を操作する場合、必要ない機能が見えていると混乱の原因になります。
例えば「外観」メニューからテーマを変更してしまったり、「プラグイン」を誤って無効化してしまったりすると、サイトのデザインや機能が壊れてしまう可能性があるんです。
必要最小限のメニューだけを表示することで、こうしたトラブルを未然に防げます。
管理画面をシンプルにするため
使わない機能が並んでいると、本当に必要な機能を見つけにくくなってしまいます。
特にプラグインをたくさん入れていると、管理画面のメニューがどんどん増えて、スクロールしないと目的の項目にたどり着けないことも。
不要なメニューを非表示にすれば、すっきりとした見やすい管理画面になりますよ。
ユーザー権限に応じた表示制御のため
WordPressには「管理者」「編集者」「投稿者」など、複数のユーザー権限があります。
例えば「編集者」には記事の編集だけをしてほしい場合、テーマやプラグインの設定メニューは非表示にしたいですよね。
権限ごとに表示するメニューを制御することで、それぞれの役割に最適な管理画面を提供できます。
メニューを非表示にする2つの方法
WordPressのメニューを非表示にする方法は大きく分けて2つあります。
プラグインを使う方法
- 初心者でも簡単
- コードを書く必要がない
- 視覚的に操作できる
コードを使う方法
- プラグインを増やしたくない場合に最適
- 細かい制御が可能
- 軽量で動作が速い
どちらの方法も有効ですので、あなたのスキルや状況に合わせて選んでください。まずはプラグインを使った簡単な方法から見ていきましょう。
プラグインを使ってメニューを非表示にする方法
推奨プラグイン:Admin Menu Editor
「Admin Menu Editor」は、WordPressの管理画面メニューをカスタマイズできる人気のプラグインです。
特徴
- ドラッグ&ドロップで直感的に操作できる
- メニューの順番を変更できる
- ユーザー権限ごとに表示を制御できる
- 無料版でも十分な機能がある
設定手順
1. プラグインをインストール
WordPressの管理画面から「プラグイン」→「新規追加」を選択します。
検索ボックスに「Admin Menu Editor」と入力して、プラグインを見つけたら「今すぐインストール」をクリック。インストールが完了したら「有効化」をクリックしましょう。
2. メニューエディターを開く
プラグインを有効化すると、「設定」メニューの中に「Menu Editor」という項目が追加されます。
ここをクリックすると、メニュー編集画面が開きます。
3. メニューを非表示にする
メニュー一覧が表示されるので、非表示にしたい項目の横にある「目のアイコン」をクリックしましょう。
アイコンが斜線付きになれば、そのメニューは非表示になります。
4. 設定を保存
変更が完了したら、画面上部にある「変更を保存」ボタンを忘れずにクリックしてください。
これで設定が反映されます。
その他のプラグイン
Adminimize
メニューだけでなく、ダッシュボードウィジェットや投稿画面の要素なども非表示にできる多機能プラグインです。
Hide Admin Menu
シンプルにメニューの表示・非表示だけを設定したい場合におすすめです。チェックボックスで選択するだけなので、とても簡単に使えます。
コードでメニューを非表示にする方法(functions.phpを使用)

プラグインを増やしたくない方や、より細かい制御をしたい方は、コードを使った方法がおすすめです。
基本的な設定方法
準備するもの
- テーマの「functions.php」ファイルへのアクセス権限
- テキストエディタ(メモ帳でもOK)
- FTPソフトまたはWordPress管理画面のテーマエディター
注意事項
functions.phpを編集する前に、必ずバックアップを取っておきましょう。
また、親テーマのfunctions.phpを直接編集すると、テーマ更新時に変更が消えてしまいます。可能であれば子テーマを使用することをおすすめします。
メインメニューを非表示にするコード
WordPressの標準メニューを非表示にする基本的なコードがこちらです。
// 管理画面のメニューを非表示にする
function remove_admin_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_admin_menus', 999 );
コードの説明
remove_menu_page関数
この関数は、指定したメニュー項目を非表示にする役割を持っています。
括弧の中に書かれている「’index.php’」や「’edit.php’」などは、メニューのスラッグ(識別子)と呼ばれるものです。
add_action関数
WordPressに「管理画面のメニューが表示されるタイミングで、上記の関数を実行してください」と指示しています。
最後の「999」は優先順位を表す数字で、大きい数字ほど後に実行されます。プラグインが追加したメニューも確実に非表示にするため、大きな数字を指定しているんです。
使い方
- 上記のコードをコピーします
- 非表示にしたくないメニューの行を削除します(例:投稿メニューは残したい場合、
remove_menu_page( 'edit.php' );の行を削除) - functions.phpの最後に貼り付けます
- ファイルを保存してアップロードします
サブメニューを非表示にするコード
メインメニューは残しつつ、その中のサブメニューだけを非表示にすることもできます。
// サブメニューを非表示にする
function remove_admin_submenus() {
// ダッシュボード
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' ); // カスタマイズ
remove_submenu_page( 'themes.php', 'widgets.php' ); // ウィジェット
remove_submenu_page( 'themes.php', 'nav-menus.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' ); // 表示設定
}
add_action( 'admin_menu', 'remove_admin_submenus', 999 );
コードの説明
remove_submenu_page関数
この関数は2つの引数を取ります。
1つ目の引数(例:’index.php’)は親メニューのスラッグ、2つ目の引数(例:’update-core.php’)は非表示にしたいサブメニューのスラッグです。
ダッシュボードウィジェットを非表示にするコード
ダッシュボード画面に表示される各種ウィジェット(情報ボックス)も非表示にできます。
// ダッシュボードウィジェットを非表示にする
function remove_dashboard_widgets() {
remove_meta_box( 'dashboard_site_health', 'dashboard', 'normal' ); // サイトヘルスステータス
remove_meta_box( 'dashboard_right_now', 'dashboard', 'normal' ); // 概要
remove_meta_box( 'dashboard_activity', 'dashboard', 'normal' ); // アクティビティ
remove_meta_box( 'dashboard_quick_press', 'dashboard', 'side' ); // クイックドラフト
remove_meta_box( 'dashboard_primary', 'dashboard', 'side' ); // WordPressニュース
remove_action( 'welcome_panel', 'wp_welcome_panel' ); // ようこそパネル
}
add_action( 'wp_dashboard_setup', 'remove_dashboard_widgets' );
ポイント
全部のウィジェットを消してしまうと、ダッシュボードが寂しくなりすぎます。
「アクティビティ」ウィジェットくらいは残しておくと、最近の更新情報が一目で分かって便利ですよ。
ユーザー権限ごとにメニューを制御する方法
より高度な設定として、ユーザーの権限によって表示するメニューを変えることができます。
権限の種類
WordPressには以下の5つの標準権限があります。
- 管理者(administrator):すべての機能にアクセスできる
- 編集者(editor):コンテンツの管理・編集ができる
- 投稿者(author):自分の記事を投稿・編集できる
- 寄稿者(contributor):記事を下書きできるが公開はできない
- 購読者(subscriber):記事を閲覧できるのみ
権限別の設定コード
// ユーザー権限に応じてメニューを制御
function remove_menus_by_role() {
// 現在のユーザーを取得
$current_user = wp_get_current_user();
if ( current_user_can( 'administrator' ) ) {
// 管理者の場合は何も非表示にしない
// または特定のメニューだけ非表示にすることも可能
} elseif ( current_user_can( 'editor' ) ) {
// 編集者の場合:テーマやプラグインの設定を非表示
remove_menu_page( 'themes.php' ); // 外観
remove_menu_page( 'plugins.php' ); // プラグイン
remove_menu_page( 'tools.php' ); // ツール
remove_menu_page( 'options-general.php' ); // 設定
} elseif ( current_user_can( 'author' ) ) {
// 投稿者の場合:自分の投稿以外を非表示
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' ); // 設定
} elseif ( current_user_can( 'contributor' ) ) {
// 寄稿者の場合:記事の下書き機能のみ
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_by_role', 999 );
コードの解説
current_user_can関数
この関数は「現在ログインしているユーザーが指定した権限を持っているか」をチェックします。
if文と組み合わせることで、「もし編集者なら〇〇を非表示にする」という条件分岐ができるんです。
特定のユーザーIDで制御する方法
権限ではなく、特定のユーザーIDで制御することもできます。
// 特定のユーザーにのみメニューを表示
function remove_menus_by_user_id() {
$current_user = wp_get_current_user();
// ユーザーID 1(通常は最初の管理者)以外は外観メニューを非表示
if ( $current_user->ID != 1 ) {
remove_menu_page( 'themes.php' );
}
}
add_action( 'admin_menu', 'remove_menus_by_user_id', 999 );
使用例
あなた自身(ユーザーID 1)だけが全ての設定にアクセスでき、他の管理者ユーザーには制限をかけたい場合などに便利です。
プラグインメニューを非表示にする方法
インストールしたプラグインが追加するメニューも非表示にできます。
プラグインメニューのスラッグを調べる方法
プラグインのメニューを非表示にするには、そのメニューのスラッグを知る必要があります。
ブラウザの開発者ツールを使う方法
- 管理画面でメニュー項目を右クリック
- 「検証」または「要素を調査」を選択
<a>タグのhref属性を確認?page=の後ろに書かれている文字列がスラッグです
コンソールで確認する方法
functions.phpに以下のコードを一時的に追加すると、すべてのメニュースラッグが表示されます。
// メニュースラッグを確認(デバッグ用)
add_action( 'admin_init', function() {
global $menu;
echo '<pre>';
print_r( $menu );
echo '</pre>';
exit;
});
管理画面にアクセスすると、メニューの情報が一覧表示されます。確認後は必ずこのコードを削除してください。
よく使われるプラグインメニューの例
// プラグインメニューを非表示にする
function remove_plugin_menus() {
remove_menu_page( 'wpcf7' ); // Contact Form 7
remove_menu_page( 'edit.php?post_type=acf-field-group' ); // Advanced Custom Fields
remove_menu_page( 'wpseo_dashboard' ); // Yoast SEO
remove_menu_page( 'jetpack' ); // Jetpack
remove_menu_page( 'edit.php?post_type=elementor_library' ); // Elementor
}
add_action( 'admin_menu', 'remove_plugin_menus', 999 );
注意点
プラグインによっては、admin_menuフックではなくadmin_initフックで実行する必要がある場合があります。
うまく非表示にならない場合は、add_actionの第1引数を'admin_init'に変更してみてください。
カスタム投稿タイプのメニューを非表示にする方法

テーマやプラグインが追加したカスタム投稿タイプのメニューも非表示にできます。
// カスタム投稿タイプのメニューを非表示
function remove_custom_post_type_menus() {
remove_menu_page( 'edit.php?post_type=product' ); // 商品
remove_menu_page( 'edit.php?post_type=portfolio' ); // ポートフォリオ
remove_menu_page( 'edit.php?post_type=testimonial' ); // お客様の声
}
add_action( 'admin_menu', 'remove_custom_post_type_menus', 999 );
カスタム投稿タイプのスラッグの見つけ方
カスタム投稿タイプの編集画面を開いたときのURLを確認してください。
edit.php?post_type=〇〇〇 の「〇〇〇」の部分がスラッグになります。
トップバー(アドミンバー)のメニューを非表示にする方法
管理画面上部に表示されるツールバー(アドミンバー)のメニュー項目も制御できます。
// トップバーのメニューを非表示にする
function remove_admin_bar_menus( $wp_admin_bar ) {
$wp_admin_bar->remove_menu( 'wp-logo' ); // WordPressロゴ
$wp_admin_bar->remove_menu( 'about' ); // WordPressについて
$wp_admin_bar->remove_menu( 'wporg' ); // WordPress.org
$wp_admin_bar->remove_menu( 'documentation' ); // ドキュメンテーション
$wp_admin_bar->remove_menu( 'support-forums' ); // サポート
$wp_admin_bar->remove_menu( 'feedback' ); // フィードバック
$wp_admin_bar->remove_menu( 'site-name' ); // サイト名
$wp_admin_bar->remove_menu( 'view-site' ); // サイトを表示
$wp_admin_bar->remove_menu( 'updates' ); // 更新
$wp_admin_bar->remove_menu( 'comments' ); // コメント
$wp_admin_bar->remove_menu( 'new-content' ); // 新規
$wp_admin_bar->remove_menu( 'customize' ); // カスタマイズ
}
add_action( 'admin_bar_menu', 'remove_admin_bar_menus', 999 );
トップバー自体を完全に非表示にする方法
トップバー全体を非表示にしたい場合は、以下のコードを使います。
// トップバーを完全に非表示
add_filter( 'show_admin_bar', '__return_false' );
ただし、これは全ユーザーに適用されるので、必要に応じて権限チェックと組み合わせましょう。
実践的な設定例
ここでは、実際の運用でよく使われる設定パターンをご紹介します。
パターン1:ブログ運営者向けのシンプル設定
記事の投稿とメディアの管理だけができればOKという場合の設定です。
// ブログ運営に必要な機能だけを残す
function simple_blog_menu() {
remove_menu_page( 'index.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', 'simple_blog_menu', 999 );
この設定だと「投稿」と「メディア」だけが表示されます。
パターン2:クライアント向けの安全な設定
制作会社がクライアントに納品する際、触ってほしくない部分を制限する設定です。
// クライアント向けの安全な設定
function client_safe_menu() {
// 管理者以外に適用
if ( ! current_user_can( 'administrator' ) ) {
remove_menu_page( 'themes.php' ); // 外観
remove_menu_page( 'plugins.php' ); // プラグイン
remove_menu_page( 'tools.php' ); // ツール
remove_menu_page( 'options-general.php' ); // 設定
// ダッシュボードの更新通知も非表示
remove_submenu_page( 'index.php', 'update-core.php' );
}
}
add_action( 'admin_menu', 'client_safe_menu', 999 );
// 更新通知も非表示
function hide_update_notice() {
if ( ! current_user_can( 'administrator' ) ) {
remove_action( 'admin_notices', 'update_nag', 3 );
}
}
add_action( 'admin_head', 'hide_update_notice', 1 );
パターン3:複数の編集者がいる場合の設定
編集チームで役割分担している場合の設定例です。
// 役割別のメニュー制御
function team_based_menu() {
if ( current_user_can( 'editor' ) ) {
// 編集者:記事とメディアの管理が可能
remove_menu_page( 'index.php' ); // ダッシュボード
remove_menu_page( 'edit.php?post_type=page' ); // 固定ページ
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' ); // 設定
} elseif ( current_user_can( 'author' ) ) {
// 投稿者:自分の記事のみ管理
remove_menu_page( 'index.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', 'team_based_menu', 999 );
よくあるトラブルと解決方法
メニューの非表示設定をする際に起こりがちな問題と、その対処法をまとめました。
メニューが非表示にならない
原因1:優先順位が低い
add_actionの第3引数(優先順位)を大きくしてみてください。
// 優先順位を上げる
add_action( 'admin_menu', 'remove_menus', 9999 );
原因2:フックが間違っている
プラグインのメニューはadmin_menuではなくadmin_initで実行する必要がある場合があります。
// フックを変更してみる
add_action( 'admin_init', 'remove_plugin_menus' );
原因3:スラッグが間違っている
ブラウザの開発者ツールで正しいスラッグを確認してください。
設定後に画面が真っ白になった
原因:PHPのエラー
コードに文法エラーがある可能性が高いです。
対処法
- FTPで接続
- functions.phpを開く
- 追加したコードを削除または修正
- 保存してアップロード
よくあるエラー:
- セミコロン(;)の付け忘れ
- 括弧の閉じ忘れ
- シングルクォートとダブルクォートの混在
一部のユーザーだけ反映されない
原因:キャッシュ
ブラウザやサーバーのキャッシュが残っている可能性があります。
対処法
- ブラウザのキャッシュをクリア
- WordPressのキャッシュプラグインをクリア
- シークレットモードで確認
URLを直接入力すると表示される
説明
メニューは非表示になっていますが、URLを知っていれば直接アクセスできます。これは正常な動作です。
完全にアクセスを制限したい場合
権限を変更するプラグイン(User Role Editorなど)を使用するか、より高度なコードが必要になります。
セキュリティと注意点
メニューを非表示にする際の重要な注意点をお伝えします。
バックアップは必須
functions.phpを編集する前に、必ずバックアップを取りましょう。
万が一エラーが発生しても、元に戻せるようにしておくことが大切です。
子テーマを使用する
親テーマのfunctions.phpを直接編集すると、テーマの更新時に変更が消えてしまいます。
子テーマを作成して、そちらに記述することをおすすめします。
非表示≠アクセス制限
重要なポイントですが、メニューを非表示にしてもURLを直接入力すればアクセスできます。
完全にアクセスを制限したい場合は、権限の変更やリダイレクト処理などの追加対策が必要です。
管理者アカウントは残す
全てのメニューを非表示にしてしまうと、後で設定を変更できなくなる可能性があります。
必ず管理者権限のアカウントは例外として、すべてのメニューにアクセスできるようにしておきましょう。
テスト環境で確認
本番環境でいきなり変更せず、可能であればテスト環境で動作確認してから適用しましょう。
まとめ
WordPressダッシュボードのメニューを非表示にする方法について、詳しく解説してきました。
最後にポイントをおさらいしましょう。
メニュー非表示の主な方法
- プラグインを使う方法(初心者におすすめ)
- Admin Menu Editor
- Adminimize
- Hide Admin Menu
- コードを使う方法(カスタマイズ性が高い)
- remove_menu_page関数でメインメニューを制御
- remove_submenu_page関数でサブメニューを制御
- ユーザー権限による条件分岐
実装する際のポイント
- 必ずバックアップを取る
- 子テーマを使用する
- テスト環境で確認してから本番適用
- 管理者アカウントは制限しない
メニュー非表示のメリット
- クライアントの誤操作を防げる
- 管理画面がシンプルで使いやすくなる
- ユーザーごとに最適な環境を提供できる
あなたのサイトに合った方法で、使いやすい管理画面を作ってみてくださいね。
最初は少しずつ試しながら、理想の設定を見つけていきましょう。分からないことがあれば、まずは少ないメニューから非表示にして、動作を確認することをおすすめします。
WordPressの管理画面を快適にして、サイト運営をもっと楽しみましょう!


コメント