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サイトでは非常に有効なカスタマイズです。必要に応じて、ウィジェットだけでなくメニューや権限設定も連携させると、さらに使いやすい管理環境が整います。