管理画面、WordPress、管理画面の使わないサイドメニューを非表示にする

CMS
この記事は約5分で読めます。

WordPressの管理画面は、非常に便利で多機能なツールですが、利用しない機能が多い場合、メニューが多すぎて管理が煩雑になることがあります。特に、複数のユーザーでサイトを運営している場合、特定のメニューを非表示にしておくことで、誤操作を防ぎ、管理効率を向上させることが可能です。

メニューを非表示にする方法

以下のコードをテーマの functions.php ファイルに追加してください。

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

このコードは、指定されたメニュー項目を非表示にします。remove_menu_page() の引数には、非表示にしたいメニューのスラッグ(メニュー識別子)を指定します。

特定のユーザー権限に応じたメニューの非表示

特定のユーザーにのみ非表示にしたい場合は、以下のようにコードを変更します。

function remove_admin_menus_for_editors() {
    if (!current_user_can('administrator')) {
        remove_menu_page('index.php');               // ダッシュボード
        remove_menu_page('edit.php');                // 投稿
        remove_menu_page('upload.php');             // メディア
        remove_menu_page('edit-comments.php');       // コメント
        remove_menu_page('plugins.php');            // プラグイン
    }
}
add_action('admin_menu', 'remove_admin_menus_for_editors');
PHP

このコードでは、current_user_can(‘administrator’) を使用して、管理者以外のユーザーに特定のメニューを非表示にしています。

メニューIDを使用した非表示

WordPressのメニュー項目は $menu 配列で管理されています。この配列のインデックスを使用してメニューを非表示にする方法もあります。

function remove_menus() {
    global $menu;
    unset($menu[2]);  // ダッシュボード
    unset($menu[5]);  // 投稿
    unset($menu[10]); // メディア
    unset($menu[20]); // 固定ページ
    unset($menu[25]); // コメント
    unset($menu[60]); // 外観
    unset($menu[65]); // プラグイン
    unset($menu[70]); // ユーザー
    unset($menu[75]); // ツール
    unset($menu[80]); // 設定
}
add_action('admin_menu', 'remove_menus');
PHP

unset() を使用して、特定のインデックスを非表示にします。この方法は、よりシンプルで柔軟性があります。

メニューのスラッグは、ブラウザのアドレスバーに表示されるURLから確認できます。
例えば、「投稿」メニューのスラッグは edit.php です。このスラッグをコード内で指定することで、該当するメニューを非表示にできます。

注意点

  • functions.php の編集時は注意: 間違ったコードを記述すると、サイトが動作しなくなる可能性があります。必ずバックアップを取ってから編集してください。
  • 管理者権限を確認: 必要なメニューまで非表示にしないよう、管理者権限で確認を行いましょう。
  • プラグインの活用: コード編集が難しい場合、管理画面メニューをカスタマイズするプラグイン(例: Admin Menu Editor)を活用するのも一つの方法です。

まとめ

WordPressの管理画面で使わないサイドメニューを非表示にすることで、作業効率が向上し、管理の安全性も高まります。functions.php に簡単なコードを追加するだけで、メニューの整理が可能です。必要に応じて、特定のユーザーグループに応じた設定も行えます。

以上の方法を参考に、WordPressの管理画面をカスタマイズして、より快適なサイト運営を目指しましょう。

コメント