WordPressではログインユーザーに対して管理画面(ダッシュボード)を自由にカスタマイズできます。特定の権限を持つユーザーごとに表示内容を切り替えることで、編集者・寄稿者・管理者それぞれに最適な操作環境を提供できます。この記事では、ユーザー権限やユーザーIDに応じてダッシュボードの表示内容を切り替える方法を紹介します。
標準のWelcome Panelを非表示にする
WordPressの管理画面トップには標準で「ようこそ」パネル(Welcome Panel)が表示されます。これを非表示にするには、専用のアクションフックを使います。
// 標準の「ようこそ」パネルを非表示にする
remove_action('welcome_panel', 'wp_welcome_panel');
wp_clear_scheduled_hook()はWP-Cronの**スケジュール済みイベント**を解除するための関数で、Welcome Panelとは無関係です。’welcome_panel’という名前のCronイベントは存在しないため、この関数を呼んでも何も起こりません。Welcome Panelはwelcome_panelという名前のアクションフックとして実装されているため、remove_action('welcome_panel', 'wp_welcome_panel')で正しく非表示にできます。ダッシュボードウィジェットをカスタマイズする
WordPressの管理画面トップに表示されるウィジェットは、wp_dashboard_setupアクションを使ってカスタマイズできます。以下の例では、ユーザー権限に応じて異なるウィジェットを表示し、さらに特定のユーザーIDにだけ専用ウィジェットを追加しています。
function custom_dashboard_widgets() {
global $wp_meta_boxes;
// すべてのウィジェットを一度削除
unset($wp_meta_boxes['dashboard']['normal']['core']);
unset($wp_meta_boxes['dashboard']['side']['core']);
$current_user = wp_get_current_user();
if (current_user_can('manage_options')) {
wp_add_dashboard_widget('admin_dashboard_widget', '管理者向け情報', function () {
echo '<p>ようこそ管理者様!システム設定はこちらから行えます。</p>';
});
} elseif (current_user_can('edit_others_posts')) {
wp_add_dashboard_widget('editor_dashboard_widget', '編集者用パネル', function () {
echo '<p>新しい投稿を作成するには左メニューの「投稿」へ進んでください。</p>';
});
} else {
wp_add_dashboard_widget('general_user_widget', 'ようこそ', function () {
echo '<p>ご利用いただきありがとうございます。</p>';
});
}
// 特定のユーザーID(たとえば社内メンバーやクライアント担当者など)ごとに専用ウィジェットを追加
if ($current_user->ID === 5) {
wp_add_dashboard_widget('user5_widget', '担当者A向けメッセージ', function () {
echo '<p>現在のキャンペーンページの更新期限は○月○日です。</p>';
});
}
}
add_action('wp_dashboard_setup', 'custom_dashboard_widgets');
ロールの判定にはin_array('administrator', $current_user->roles)のようなロール名の直接比較ではなく、current_user_can('manage_options')のような権限(capability)ベースの判定を使うのがおすすめです。カスタムロールを追加した場合でも、権限さえ揃っていれば正しく判定できます。
CSSでダッシュボードをさらに調整する
不要な項目をCSSで非表示にすることも可能です。以下のコードは管理画面にCSSを追加する例です。
function custom_dashboard_css() {
echo '<style>
#dashboard_right_now, .update-nag {
display: none;
}
</style>';
}
add_action('admin_head', 'custom_dashboard_css');
関連記事
よくある質問(FAQ)
まとめ
ユーザーごとにカスタマイズされたダッシュボードを提供することで、操作性の向上だけでなく、管理ミスや混乱の防止にもつながります。企業サイトやメディアサイトなど、多人数運営を行うWordPressサイトでは非常に有効なカスタマイズです。必要に応じて、ウィジェットだけでなくメニューや権限設定も連携させると、さらに使いやすい管理環境が整います。

