【WordPress】ユーザーごとのカスタムダッシュボードを作る方法

【WordPress】ユーザーごとのカスタムダッシュボードを作る方法 WordPress

WordPressではログインユーザーに対して管理画面(ダッシュボード)を自由にカスタマイズできます。特定の権限を持つユーザーごとに表示内容を切り替えることで、編集者・寄稿者・管理者それぞれに最適な操作環境を提供できます。この記事では、ユーザー権限やユーザーIDに応じてダッシュボードの表示内容を切り替える方法を紹介します。

ダッシュボードウィジェットをカスタマイズする

WordPressの管理画面トップに表示されるウィジェットは、wp_dashboard_setupアクションを使ってカスタマイズできます。以下の例では、ユーザー権限に応じて異なるウィジェットを表示します。


function custom_dashboard_widgets() {
  global $wp_meta_boxes;
  wp_clear_scheduled_hook('welcome_panel'); // 標準のようこそウィジェットを非表示

  // すべてのウィジェットを一度削除
  unset($wp_meta_boxes['dashboard']['normal']['core']);
  unset($wp_meta_boxes['dashboard']['side']['core']);

  $current_user = wp_get_current_user();

  if (in_array('administrator', $current_user->roles)) {
    wp_add_dashboard_widget('admin_dashboard_widget', '管理者向け情報', function () {
      echo '

ようこそ管理者様!システム設定はこちらから行えます。

'; }); } elseif (in_array('editor', $current_user->roles)) { wp_add_dashboard_widget('editor_dashboard_widget', '編集者用パネル', function () { echo '

新しい投稿を作成するには左メニューの「投稿」へ進んでください。

'; }); } else { wp_add_dashboard_widget('general_user_widget', 'ようこそ', function () { echo '

ご利用いただきありがとうございます。

'; }); } } add_action('wp_dashboard_setup', 'custom_dashboard_widgets');

ユーザーID別に表示を変更する

特定のユーザーID(たとえば社内メンバーやクライアント担当者など)ごとに専用のダッシュボードを表示したい場合、以下のように条件を追加できます。


if ($current_user->ID == 5) {
  wp_add_dashboard_widget('user5_widget', '担当者A向けメッセージ', function () {
    echo '

現在のキャンペーンページの更新期限は○月○日です。

'; }); }

CSSでダッシュボードをさらに調整する

不要な項目をCSSで非表示にすることも可能です。以下のコードは管理画面にCSSを追加する例です。


function custom_dashboard_css() {
  echo '<style>
    #dashboard_right_now, #welcome-panel, .update-nag {
      display: none;
    }
  </style>';
}
add_action('admin_head', 'custom_dashboard_css');

まとめ

ユーザーごとにカスタマイズされたダッシュボードを提供することで、操作性の向上だけでなく、管理ミスや混乱の防止にもつながります。企業サイトやメディアサイトなど、多人数運営を行うWordPressサイトでは非常に有効なカスタマイズです。必要に応じて、ウィジェットだけでなくメニューや権限設定も連携させると、さらに使いやすい管理環境が整います。