WordPress 管理画面の配色を権限ごとに固定する方法

WordPress では、ユーザーごとに管理画面の配色(管理カラースキーム)を選択できます。しかし、運用体制によっては「権限ごとに管理画面の配色を固定したい」「誤操作を防ぐために、ユーザー個人で変更できないようにしたい」というケースがあります。

本記事では、ユーザー権限(ロール)ごとに管理画面の配色を強制する方法を、実際に使えるコード例とともに解説します。


なぜ権限ごとに配色を固定するのか

複数のスタッフが関わるサイト運用では、権限によって管理画面の表示・操作が異なります。

  • 管理者はフル機能が必要
  • 編集者は記事管理中心
  • 投稿者は記事作成に集中
  • カスタムロールで担当業務を制限している場合もある

このような状況では、権限ごとに配色を変えて視覚的に役割を区別することで、次のメリットがあります。

  • 自分の権限をひと目で把握できる
  • 誤操作を減らせる(特に複数サイト運用時)
  • 統一された運用ルールを構築しやすい

権限ごとに配色を固定するコード

WordPress には get_user_option_admin_color フィルターが用意されており、これを利用するとユーザーの配色を強制できます。

以下のコードを functions.php または独自プラグインに追加してください。

/**
 * ロールごとに管理画面の配色を固定する
 */
add_filter('get_user_option_admin_color', function ($color, $user_id) {

    $user = get_userdata($user_id);
    if (!$user) {
        return $color;
    }

    $roles = (array) $user->roles;

    // 管理者
    if (in_array('administrator', $roles, true)) {
        return 'fresh';
    }

    // 編集者
    if (in_array('editor', $roles, true)) {
        return 'midnight';
    }

    // 投稿者
    if (in_array('author', $roles, true)) {
        return 'ocean';
    }

    // 寄稿者
    if (in_array('contributor', $roles, true)) {
        return 'sunrise';
    }

    // 購読者
    if (in_array('subscriber', $roles, true)) {
        return 'light';
    }

    return 'fresh'; // 上記以外のロール
}, 10, 2);

標準で利用できる配色スキームは以下です。

スキーム名特徴
fresh標準の配色
light明るい配色
blueブルー系
coffeeブラウン系
ectoplasmグリーン系
midnightダーク系
ocean青とグレーの落ち着いた配色
sunriseオレンジ系

必要に応じてロール名や配色名を置き換えてください。


ユーザーが配色を変更できないようにする

ユーザー本人のプロフィール画面には「管理画面の配色」セレクトが表示されます。
権限ごとに固定する場合、このセレクトは非表示にします。

/**
 * プロフィール画面の配色選択 UI を削除
 */
add_action('admin_head-profile.php', function () {
    remove_action('admin_color_scheme_picker', 'admin_color_scheme_picker');
});

これでユーザーは配色を変更できなくなり、ロールごとの固定設定が確実に機能します。


まとめ

WordPress の管理画面配色は通常ユーザーごとに選択できますが、権限ごとに固定することで運用効率や安全性が向上します。

本記事で紹介したコードを活用すれば、次のような管理が可能です。

  • 権限に応じて管理画面の配色を自動で設定
  • ユーザーが配色を変更できないよう制御
  • 管理側で統一された運用ルールを構築

複数スタッフによる更新や、複数の権限が存在するサイト運用で特に役立つ手法です。

コメント

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