
WordPress 3分間フッキングシリーズについて
こんにちは、WordPressエンジニアの皆さん!埼玉県川越市を拠点にWordPressの開発・カスタマイズを手がけている私たちが、「WordPress 3分間フッキング」シリーズをお届けします。
あの国民的料理番組「3分間クッキング」をもじった、WordPress開発者のための「3分間フッキング」、今回はダッシュボードウィジェットを簡素化する方法をご紹介します!
このシリーズでは、WordPressの真髄とも言える「フック」を使った実用的なテクニックを、functions.phpに数行書くだけで実現できる形でお伝えしていきます。
なぜダッシュボードウィジェットを簡素化するのか?
WordPressにログインすると最初に表示される「ダッシュボード」画面。WordPressの標準インストールでは、様々な情報を表示する複数のウィジェットが配置されています。
例えば:
- 概要(アクティビティ)
- クイックドラフト
- WordPressニュース
- 最近のコメント
- 受信トラックバック
- サイトヘルス
しかし、これらのウィジェットの中には、あなたやクライアントにとって必要のないものも含まれているはずです。
必要なウィジェットだけを表示することで、クライアントやチームメンバーにとってシンプルで使いやすいダッシュボードを実現できます。
具体的なメリットには以下のようなものがあります:
- 画面の情報過多を防ぎ、重要な情報に集中できる
- 初心者ユーザーが迷わないシンプルなUIの実現
- クライアントサイト向けに必要な情報だけを表示
- サイト専用の重要ウィジェットを目立たせる
前回の記事「WordPress 3分間フッキング:ダッシュボードに便利なサイト統計情報ウィジェットを追加する」では、ダッシュボードに独自のウィジェットを追加する方法を解説しました。今回は逆に、不要なウィジェットを非表示にする方法を学びましょう。
それでは早速、コードを見ていきましょう!
ダッシュボードウィジェット非表示化のコード解説
1 2 3 4 5 6 7 |
add_action('wp_dashboard_setup', 'wp3min_remove_dashboard_widgets'); function wp3min_remove_dashboard_widgets() { remove_meta_box('dashboard_quick_press', 'dashboard', 'side'); // クイックドラフト remove_meta_box('dashboard_recent_comments', 'dashboard', 'normal');// 最近のコメント // 必要に応じて他のウィジェットも削除 } |
このコードでは、たった数行でダッシュボードのウィジェットをカスタマイズしています。では、その仕組みを詳しく解説していきましょう。
wp_dashboard_setupフックの活用
最初の行で「wp_dashboard_setup」というアクションフックに自作関数をフックしています。
このフックはダッシュボードが構築される瞬間に実行されるため、ウィジェットを追加したり削除したりするのに最適なタイミングです。前回の記事で独自ウィジェットを追加するときにも使用した、同じフックです。
1 |
add_action('wp_dashboard_setup', 'wp3min_remove_dashboard_widgets'); |
remove_meta_box()関数の役割
WordPress には remove_meta_box()
という便利な関数が用意されています。この関数はダッシュボードウィジェット(メタボックス)を非表示にするために使われます。
remove_meta_box()
関数は3つのパラメータを受け取ります:
パラメータ | 説明 | 例 |
---|---|---|
ウィジェットID | 非表示にしたいウィジェットの識別子 | 'dashboard_quick_press' |
画面ID | どの画面のウィジェットか(通常は’dashboard’) | 'dashboard' |
コンテキスト | ウィジェットの配置エリア(’normal’, ‘side’, ‘advanced’のいずれか) | 'side' または'normal' |
コンテキストは正確に指定する必要があります。間違えるとウィジェットが非表示になりません。
非表示にできる主なダッシュボードウィジェット
WordPressの標準インストールには、以下のようなウィジェットが含まれています。それぞれのウィジェットIDとコンテキストを把握しておくと便利です。
ウィジェット名 | ウィジェットID | コンテキスト |
---|---|---|
概要(アクティビティ) | 'dashboard_right_now' |
'normal' |
最近のコメント | 'dashboard_recent_comments' |
'normal' |
受信トラックバック | 'dashboard_incoming_links' |
'normal' |
クイックドラフト | 'dashboard_quick_press' |
'side' |
WordPressニュース | 'dashboard_primary' |
'side' |
サイトヘルス | 'dashboard_site_health' |
'normal' |
WordPress イベントとニュース | 'dashboard_secondary' |
'side' |
ダッシュボード Welcome | 'welcome_panel' |
特殊(別の関数で削除) |
「ダッシュボード Welcome」パネルは少し特殊で、次のように削除します:
1 |
remove_action('welcome_panel', 'wp_welcome_panel'); |
実装手順
さて、実際にこのコードを使ってダッシュボードウィジェットを非表示にしてみましょう!
- WordPressの管理画面から「外観」→「テーマエディター」へ移動します
- 右側のファイル一覧から「functions.php」を選択します
- ファイルの適切な位置に、以下のコードを追加します
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
// ダッシュボードウィジェットのカスタマイズ add_action('wp_dashboard_setup', 'wp3min_remove_dashboard_widgets'); function wp3min_remove_dashboard_widgets() { // クイックドラフトを非表示 remove_meta_box('dashboard_quick_press', 'dashboard', 'side'); // 最近のコメントを非表示 remove_meta_box('dashboard_recent_comments', 'dashboard', 'normal'); // WordPressニュースを非表示 remove_meta_box('dashboard_primary', 'dashboard', 'side'); // サイトヘルスを非表示 remove_meta_box('dashboard_site_health', 'dashboard', 'normal'); // Welcome パネルを非表示 remove_action('welcome_panel', 'wp_welcome_panel'); } |
活用シーンとカスタマイズ例
ダッシュボードウィジェットの非表示機能は様々なシーンで活用できます。具体的な例をいくつか紹介します。
1. クライアント向け簡易ダッシュボード
クライアントに納品するWordPressサイトでは、シンプルなダッシュボードを提供することでサポートの手間を減らせます!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
function wp3min_client_dashboard() { // 不要なウィジェットをすべて非表示に remove_meta_box('dashboard_quick_press', 'dashboard', 'side'); remove_meta_box('dashboard_recent_comments', 'dashboard', 'normal'); remove_meta_box('dashboard_incoming_links', 'dashboard', 'normal'); remove_meta_box('dashboard_primary', 'dashboard', 'side'); remove_meta_box('dashboard_secondary', 'dashboard', 'side'); remove_meta_box('dashboard_site_health', 'dashboard', 'normal'); remove_action('welcome_panel', 'wp_welcome_panel'); // 概要(サイト情報)は残す // remove_meta_box('dashboard_right_now', 'dashboard', 'normal'); } add_action('wp_dashboard_setup', 'wp3min_client_dashboard'); |
2. コンテンツ重視のダッシュボード
更新作業に集中するための、コンテンツ管理に特化したダッシュボード:
1 2 3 4 5 6 7 8 9 10 11 12 |
function wp3min_content_focused_dashboard() { // 技術的な情報や外部リンクを非表示 remove_meta_box('dashboard_site_health', 'dashboard', 'normal'); remove_meta_box('dashboard_primary', 'dashboard', 'side'); remove_meta_box('dashboard_secondary', 'dashboard', 'side'); // コンテンツ管理に関連する情報は残す // remove_meta_box('dashboard_right_now', 'dashboard', 'normal'); // remove_meta_box('dashboard_quick_press', 'dashboard', 'side'); // remove_meta_box('dashboard_recent_comments', 'dashboard', 'normal'); } add_action('wp_dashboard_setup', 'wp3min_content_focused_dashboard'); |
3. ユーザーロールに応じたカスタマイズ
ユーザーの権限レベルに応じて、表示するウィジェットを変更することもできます:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
function wp3min_role_based_dashboard() { // 管理者以外のユーザーにはシンプルなダッシュボードを提供 if (!current_user_can('administrator')) { // 技術的な情報を非表示 remove_meta_box('dashboard_site_health', 'dashboard', 'normal'); remove_meta_box('dashboard_primary', 'dashboard', 'side'); remove_meta_box('dashboard_secondary', 'dashboard', 'side'); // 基本的なコンテンツ更新ツールは残す // remove_meta_box('dashboard_right_now', 'dashboard', 'normal'); // remove_meta_box('dashboard_quick_press', 'dashboard', 'side'); } } add_action('wp_dashboard_setup', 'wp3min_role_based_dashboard'); |
応用テクニック
ウィジェットの非表示化だけでなく、さらに進んだカスタマイズも可能です。
1. 独自ウィジェットとの組み合わせ
前回の記事「WordPress 3分間フッキング:ダッシュボードに便利なサイト統計情報ウィジェットを追加する」で解説した独自ウィジェットの追加と組み合わせて、理想的なダッシュボードを作成できます:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
function wp3min_custom_dashboard_setup() { // 不要なデフォルトウィジェットを削除 remove_meta_box('dashboard_primary', 'dashboard', 'side'); remove_meta_box('dashboard_quick_press', 'dashboard', 'side'); // 独自ウィジェットを追加 wp_add_dashboard_widget( 'site_statistics_widget', 'サイト統計情報', 'wp3min_stats_widget_callback' ); } add_action('wp_dashboard_setup', 'wp3min_custom_dashboard_setup'); |
2. ウィジェットの再配置
グローバル変数 $wp_meta_boxes
を使って、ウィジェットの位置を変更することもできます:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
function wp3min_reorder_dashboard_widgets() { global $wp_meta_boxes; // 「概要」ウィジェットを最上部に移動 $normal_dashboard = $wp_meta_boxes['dashboard']['normal']['core']; $right_now_widget = $normal_dashboard['dashboard_right_now']; unset($normal_dashboard['dashboard_right_now']); // 最初の位置に再挿入 $sorted_dashboard = array('dashboard_right_now' => $right_now_widget); $wp_meta_boxes['dashboard']['normal']['core'] = array_merge($sorted_dashboard, $normal_dashboard); } add_action('wp_dashboard_setup', 'wp3min_reorder_dashboard_widgets', 100); |
この方法は少し複雑で、WordPressの内部構造に依存するため、将来のバージョンで動作しなくなる可能性があります。注意して使用してください。
3. 管理画面全体のスリム化
ダッシュボードだけでなく、WordPressの管理画面全体をシンプルにすることも可能です。例えば:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
// 管理バーからWordPressロゴと更新通知を削除 function wp3min_clean_admin_bar() { global $wp_admin_bar; $wp_admin_bar->remove_menu('wp-logo'); $wp_admin_bar->remove_menu('updates'); } add_action('wp_before_admin_bar_render', 'wp3min_clean_admin_bar'); // 不要なダッシュボードウィジェットを削除 function wp3min_clean_dashboard() { remove_meta_box('dashboard_primary', 'dashboard', 'side'); remove_meta_box('dashboard_quick_press', 'dashboard', 'side'); } add_action('wp_dashboard_setup', 'wp3min_clean_dashboard'); |
実装時の注意点
ウィジェットのカスタマイズは便利ですが、いくつか注意点があります:
- 非表示にするウィジェットのIDとコンテキストを正確に指定しないと機能しません
- WordPress本体やプラグインのアップデートで、ウィジェットのIDが変わる可能性があります
- プラグインが独自のダッシュボードウィジェットを追加する場合、それらのIDを調べる必要があります
- 管理者アカウントでも一部の重要な情報が表示されなくなるため、バランスを考慮してください
プラグインが追加したウィジェットのIDを調べるには、ブラウザの検証ツールを使用してウィジェットのHTML要素を確認するのが便利です。
まとめ
いかがでしたか?たった数行のコードで、WordPressのダッシュボードを大幅にカスタマイズできることがわかりました。
このテクニックを使えば、クライアントやチームメンバーに最適化された、シンプルで使いやすいダッシュボードを提供できます。
今回のポイントをおさらいしましょう:
wp_dashboard_setup
アクションフックを使ってダッシュボードウィジェットを操作できるremove_meta_box()
関数でウィジェットを非表示にできる- ウィジェットID、画面ID、コンテキストの3つのパラメータを正しく指定する必要がある
- 目的に応じた適切なカスタマイズで、使いやすい管理画面を実現できる
埼玉県川越市を拠点とする私たちは、このようなWordPressのカスタマイズ技術を活用して、クライアント様に使いやすい管理画面をご提供しています。管理画面の最適化は、日々の運用効率向上につながる重要なポイントです。
次回の「WordPress 3分間フッキング」もお楽しみに!別のフックを使った便利技をご紹介します。
よくある質問
Q: 一度非表示にしたウィジェットを元に戻すことはできますか?
A: はい、functions.phpからコードを削除するか、コード内の該当行をコメントアウトすれば元に戻ります。もしくは別のプラグインを使ってカスタマイズしている場合は、そのプラグインを無効化してください。
Q: プラグインが追加したダッシュボードウィジェットも非表示にできますか?
A: はい、同じ方法で非表示にできます。ただしウィジェットのIDとコンテキストを正確に把握する必要があります。ブラウザの検証ツールを使って調べるとよいでしょう。
Q: ウィジェットによっては非表示にならないものもありますが?
A: ウィジェットのIDやコンテキストが間違っている可能性があります。また、特殊な方法で表示されているウィジェット(Welcomeパネルなど)は別の方法で非表示にする必要があります。
WordPressダッシュボードのカスタマイズでお悩みの場合は、WordPressカスタマイズ・プラグイン開発サービスをご利用ください。また、管理画面の最適化やチームの作業効率向上にお悩みの方はWordPress顧問エンジニアサービスもご検討いただければ幸いです。