管理画面を「クライアント仕様」にする:不要メニュー・項目を非表示にするコード集

WordPressの管理画面には、多くのメニューや機能が標準で並んでいます。制作者にとっては便利でも、サイトを納品するクライアントにとっては、「どこを触ればいいか分からない」「うっかり設定を変えてしまった」というトラブルの元になりがちです。

そこで、納品前に管理画面を、クライアント向けに整理する作業が有効です。この記事では、不要なメニューや項目の非表示、権限別の出し分け、ダッシュボードの整理を、コードで実現する方法をまとめます。

なぜ管理画面を整理するのか

管理画面を整理する目的は、見た目をすっきりさせることだけではありません。

  • 誤操作の防止:テーマやプラグインの設定、パーマリンクの変更など、サイトが壊れる操作を防ぐ。
  • 運用の負担軽減:更新に必要な項目だけを残し、迷わず作業できるようにする。
  • サポートの削減:「この項目は何ですか」という問い合わせを減らす。
  • セキュリティ向上:権限のないユーザーに、不要な機能を見せない。

ただし、メニューを非表示にしても、URLを直接開けばアクセスできてしまう点に注意が必要です。本当に使わせたくない機能は、「権限」の制御もあわせて行います。この違いは、後ほど詳しく説明します。

前提:コードを書く場所

以下のコードは、テーマのfunctions.phpではなく、wp-content/mu-plugins/ に置いたファイルに書くことをおすすめします。管理画面の制限は、テーマを変更しても維持したい処理だからです。また、管理者(自分)が作業できなくならないよう、制限の対象を「管理者以外」に絞るのが基本です。

メニューを非表示にする

左側のメニューを消すには、remove_menu_page() を使います。

add_action( 'admin_menu', function () {
	// 管理者以外の場合のみ実行
	if ( current_user_can( 'administrator' ) ) {
		return;
	}
	remove_menu_page( 'edit-comments.php' );  // コメント
	remove_menu_page( 'tools.php' );          // ツール
	remove_menu_page( 'themes.php' );         // 外観
	remove_menu_page( 'plugins.php' );        // プラグイン
}, 999 );

第1引数は、メニューのスラッグです。調べるには、管理画面で該当メニューを開き、URLの wp-admin/ 以降の部分を確認します。たとえば、設定メニューは options-general.php です。

サブメニューを消す

メニューの中の一部だけを消したい場合は、remove_submenu_page() を使います。

add_action( 'admin_menu', function () {
	if ( current_user_can( 'administrator' ) ) {
		return;
	}
	// 設定メニューの「パーマリンク」を消す
	remove_submenu_page( 'options-general.php', 'options-permalink.php' );
	// 投稿メニューの「タグ」を消す
	remove_submenu_page( 'edit.php', 'edit-tags.php?taxonomy=post_tag' );
}, 999 );

フックの優先度を 999 のように大きくするのは、プラグインがメニューを追加したあとで削除するためです。優先度が低いと、後から追加されたメニューが消えません。

メニューを消しただけでは不十分な理由

先ほど触れたとおり、メニューを非表示にしても、URLを直接入力すればアクセスできます。たとえば、「外観」のメニューを消しても、wp-admin/themes.php を開けば、テーマの管理画面が表示されます。

操作させたくない画面は、アクセス自体を制限します。

add_action( 'admin_init', function () {
	if ( current_user_can( 'administrator' ) ) {
		return;
	}
	global $pagenow;
	$deny = array( 'themes.php', 'plugins.php', 'tools.php' );
	if ( in_array( $pagenow, $deny, true ) ) {
		wp_safe_redirect( admin_url() );
		exit;
	}
} );

これで、該当ページにアクセスすると、ダッシュボードに戻されます。ただし、完全な制御をするなら、ユーザー権限(ロール)そのものを調整する方法のほうが確実です。次の項で説明します。

権限(ロール)を調整する

WordPressには、管理者・編集者・投稿者・寄稿者・購読者というロールがあります。クライアントには、管理者ではなく編集者の権限を渡すだけで、プラグインやテーマの操作は、最初からできなくなります。

編集者でも不足する権限(例:メニューの編集)を追加したい場合は、add_cap() で権限を加えます。

add_action( 'init', function () {
	$role = get_role( 'editor' );
	if ( $role ) {
		$role->add_cap( 'edit_theme_options' ); // メニュー・ウィジェットの編集を許可
	}
} );

ただし、edit_theme_options を与えると、テーマのカスタマイザーや、ブロックテーマのサイトエディターなども使えるようになります。権限は、必要最小限だけ追加してください。また、add_cap()の結果はデータベースに保存されるため、毎回実行する必要はありません。確認が済んだら、コードを削除してもかまいません。

クライアント専用のロールを新しく作る方法もあります。運用ルールが複雑な場合は、専用ロールを作ると、管理しやすくなります。

ダッシュボードを整理する

ログイン後に最初に表示されるダッシュボードには、「WordPressイベントとニュース」「クイックドラフト」などのウィジェットが並びます。クライアントには不要なことが多いため、非表示にします。

add_action( 'wp_dashboard_setup', function () {
	remove_meta_box( 'dashboard_primary', 'dashboard', 'side' );        // イベントとニュース
	remove_meta_box( 'dashboard_quick_press', 'dashboard', 'side' );    // クイックドラフト
	remove_meta_box( 'dashboard_site_health', 'dashboard', 'normal' );  // サイトヘルス
	remove_meta_box( 'dashboard_activity', 'dashboard', 'normal' );     // アクティビティ
	remove_meta_box( 'dashboard_right_now', 'dashboard', 'normal' );    // 概要
} );

代わりに、サイト運営者への案内を表示するウィジェットを追加すると、親切です。更新の手順、問い合わせ先、マニュアルへのリンクなどを載せましょう。

add_action( 'wp_dashboard_setup', function () {
	wp_add_dashboard_widget( 'client_guide', '更新のご案内', function () {
		echo '<p>記事の更新方法は、マニュアルをご覧ください。</p>';
		echo '<p>お困りの際は、制作担当までご連絡ください。</p>';
	} );
} );

管理バーと投稿画面を整理する

管理バー(上部のバー)の項目を消す

add_action( 'admin_bar_menu', function ( $wp_admin_bar ) {
	$wp_admin_bar->remove_node( 'wp-logo' );   // WordPressのロゴ
	$wp_admin_bar->remove_node( 'comments' );  // コメント
	$wp_admin_bar->remove_node( 'new-content' ); // 新規追加
}, 999 );

投稿編集画面の不要な項目を消す(クラシックエディター向け)

次のコードは、クラシックエディターのメタボックスを消すものです。ブロックエディターでは、ディスカッションやスラッグ(URL)が専用のサイドバーパネルになっているため、メタボックスの削除では消えないことがあります。ブロックエディターの場合は、実際の編集画面で効果を確認してください。

add_action( 'add_meta_boxes', function () {
	remove_meta_box( 'commentstatusdiv', 'post', 'normal' ); // ディスカッション
	remove_meta_box( 'slugdiv', 'post', 'normal' );          // スラッグ
	remove_meta_box( 'trackbacksdiv', 'post', 'normal' );    // トラックバック
}, 99 );

スラッグは、SEOに関わる大切な項目です。非表示にするかどうかは、運用方針に合わせて決めてください。

フッターのWordPressの案内を消す

add_filter( 'admin_footer_text', '__return_empty_string' );
add_filter( 'update_footer', '__return_empty_string', 11 );

管理画面下部の「WordPressのご利用ありがとうございます」と、バージョン表示が消えます。

更新通知を、管理者だけに出す

WordPress本体の更新通知(「WordPress X.X が利用可能です!」のバナー)は、編集者などにも表示されることがありますが、本人は何もできず、不安を与えるだけです。管理者以外には非表示にします。

add_action( 'admin_head', function () {
	if ( ! current_user_can( 'update_core' ) ) {
		remove_action( 'admin_notices', 'update_nag', 3 );
	}
} );

プラグインを使う方法との比較

コードを書かなくても、「Adminimize」のようなプラグインで、同様の制限ができます。プラグインとコードの特徴を比較します。

項目 プラグイン コード
導入のしやすさ 画面で設定でき、簡単 PHPの知識が必要
細かい制御 用意された範囲内 自由に制御できる
設定の再現 サイトごとに手作業 ファイルをコピーすれば再現できる
保守 更新・互換性の確認が必要 テーマや本体の更新に影響されにくい

複数のサイトを同じ設定で納品するなら、コードのほうが再利用しやすく、安定します。1サイトだけで手早く済ませたい場合は、プラグインでも十分です。

注意点

  • 制限をかけたあとは、クライアントと同じ権限のテストユーザーでログインして、必要な操作ができるか確認する。
  • 管理者を制限の対象から外す条件を、必ず入れる(自分が作業できなくなる事故を防ぐため)。
  • プラグインが追加するメニューは、導入や更新で変わる。更新後に、再度確認する。
  • 非表示の対象は、あとから復活できるよう、コード内にコメントで一覧を残しておく。
  • ダッシュボードや管理バーのコード例は、管理者も含めて非表示にします。管理者を除外したい場合は、各処理の冒頭に if ( current_user_can( 'administrator' ) ) { return; } を追加してください。

まとめ

管理画面の整理は、クライアントが安心して運用できる環境づくりの仕上げです。

  • メニューは remove_menu_page、サブメニューは remove_submenu_page で非表示にする
  • 非表示だけでは、直接URLでアクセスされるため、権限またはリダイレクトで制限する
  • ダッシュボードのウィジェットは整理し、案内用のウィジェットを追加する
  • 制限は、管理者以外に絞り、テストユーザーで動作確認する

納品のたびに同じ設定をするなら、mu-pluginとしてひな形を用意しておくと、作業時間を大きく減らせます。

PR当サイトはアフィリエイト広告を利用しています。掲載内容は広告主から依頼・指示を受けたものではなく、筆者の調査・体験にもとづきます。

コメント

PR エックスサーバー

WordPressを、速く・止まらずに運営したい方へ

サーバー選びを間違えると、表示が遅い・サイトが止まるリスクがあります

こんなお悩みはありませんか?

  • どのレンタルサーバーを選べばよいか分からない
  • 表示が遅い・サイトが落ちるのが心配
  • WordPressの設定やセキュリティに自信がない

サーバーは、あとから乗り換えると、データの移行やドメインの設定に手間がかかります。表示が遅い、突然止まるといったトラブルは、訪問者が離れる原因にもなります。最初に、稼働率の保証や実績を確認して選ぶのが安全です。

エックスサーバーなら、WordPressの運営に強いレンタルサーバーを、迷わず選べます。国内でWordPressを利用して運用されているサイトの集計(Dataprovider.com調べ、2025年6月)で、国内シェアNo.1と公式サイトに記載されています。

No.1WordPressサイトの国内シェア(Dataprovider.com調べ・2025年6月)
99.99%以上サーバー月間稼働率を保証
99%以上WordPressへの攻撃を未然に防ぐ(2024年9月15日〜11月15日の当社調べ)

選ばれるポイント

  • WordPressサイトの国内シェアNo.1。実績で選びたいときの安心材料(Dataprovider.com調べ、2025年6月)
  • サイトが止まりにくい。月間稼働率99.99%以上を保証し、下回ると月額費用の一部を返金
  • 攻撃に強い。WordPressを狙った攻撃の99%以上を未然に防ぐ機能(2024年9月15日〜11月15日の当社調べ)
  • ドメイン代を節約できる。独自ドメインが永久無料(対象ドメイン・契約期間などの条件あり)
  • テーマ選びも安心。人気テーマ「Cocoon」の開発・提供元が運営
  • 10日間の無料お試しで、契約前に操作や表示の速さを確かめられる

10日間の無料お試しで、契約前に試せます

公式サイトを見る

10日間無料でお試し

エックスサーバー

広告(アフィリエイト)を含みます。特長は2026年11月8日時点の公式サイトの記載で、数値・順位は各調査・調べの時点のものです。料金・条件は公式サイトでご確認ください。

タイトルとURLをコピーしました