WordPressダッシュボードのウィジェットを自作で追加する実装方法を解説(サンプルコード付き)

みなさんこんにちは!エンジニアの高澤です!
今回はWordPressダッシュボードにウィジェットを自作で追加する実装方法を解説していきたいと思います。
当記事では、WordPressのダッシュボードに独自のウィジェットを追加することができます。
ダッシュボードウィジェットを追加するという実装は少しニッチな内容になってくるかもしれませんが、追加することができると、例えばWebサイト制作などでテーマを開発するときに、そのテーマ独自の情報や何かしらのアナウンスをすることが可能です。
プラグイン開発をする際にも場合によっては必要になる実装になりますので、お仕事などでぜひ当記事をご活用ください。
目次
ダッシュボードとは
WordPressのダッシュボードとは、管理者がサイトの状態や最新情報などを一目で確認でき、また様々な設定や操作を行うことが可能な管理画面のことを言います。

ログイン後に最初に表示される画面であり、以下の内容がデフォルトで確認できるようになっております。
- ようこそ
- サイトヘルスステータス
- 概要
- アクティビティ
- クイックドラフト
- WordPress イベントとニュース
上記のように、ダッシュボードには「クイックドラフト」「サイトヘルスステータス」「アクティビティ」などの標準ウィジェットがあり、記事を簡単にすばやく下書きできたり、改善すべきサイトの状況などを素早く把握できます。
また、プラグインやテーマを利用することで、その利用しているプラグインやテーマ独自の情報が追加されることもあります。
実際にはあまり多用することは少ないかもしれませんが、WordPressの運営において、ダッシュボードは重要な管理ツールの一つになります。
以下がWordPress公式のダッシュボードのマニュアルページになりますので、よろしければご確認ください。
ダッシュボードのウィジェットとは
ダッシュボードのウィジェットとは、WordPress管理画面のダッシュボードに表示される小さな情報ブロックのことです。

デフォルトでは、「最近の投稿」「クイックドラフト」「サイトヘルスステータス」などのウィジェットがあり、サイトの重要な情報を素早く確認できます。
ダッシュボードのウィジェットは、管理者の利便性を向上させるためのカスタマイズが可能であり、不要なウィジェットを非表示にしたり、自作のウィジェットを追加したりすることができます。
自作でウィジェットを作成すれば、例えばサイトのアクセス解析データ、カスタム投稿タイプの統計情報、特定の通知などを表示することが可能です。これにより、管理者は必要な情報をより効率的に取得し、サイト運営の作業をスムーズに行うことができます。
ダッシュボードウィジェットの実装方法
それでは早速、ダッシュボードのウィジェットの実装方法について解説いたします。
まずは周りくどい説明は後にして、最初に実装してしまいます。
以下のコードをfunctions.phpにコピー&ペーストしてください。(プラグインとして実装したい方は、プラグインを構成するいずれかのPHPファイルにコピー&ペーストしてください)
<?php
// カスタムダッシュボードウィジェットの内容を定義
function my_custom_dashboard_widget() {
echo "<p>これはカスタムダッシュボードウィジェットです。</p>"; // ウィジェット内に表示するメッセージ
echo "<p>好きな情報や通知を表示できます。</p>"; // 任意の情報を追加可能
}
// ダッシュボードにカスタムウィジェットを追加する関数
function add_my_dashboard_widget() {
wp_add_dashboard_widget(
'custom_dashboard_widget', // ウィジェットのユニークなID
'カスタムダッシュボード', // ダッシュボードに表示されるウィジェットのタイトル
'my_custom_dashboard_widget' // ウィジェットの内容を表示する関数
);
}
// ダッシュボードのセットアップ時にカスタムウィジェットを追加
add_action('wp_dashboard_setup', 'add_my_dashboard_widget');
ペーストしていただきましたら、管理画面のダッシュボードを開いてください。
下図のように、独自のウィジェットが追加されているのが確認できたかと思います。

ウィジェットの中身が独自に定義したmy_custom_dashboard_widget()関数内で記述しているHTMLが表示されている形になります。
このHTMLの部分に、例えば画像やフォーム、分析チャートグラフなど、何かしらの情報を表示することが可能です。
ウィジェットの実装には以下の関数とフックを使用しております。
- wp_add_dashboard_widget()関数
- wp_dashboard_setupフック
それぞれ解説いたします。
wp_add_dashboard_widget()関数
wp_add_dashboard_widget()関数は、WordPressの管理画面ダッシュボードに独自のウィジェットを追加することができる関数です。
この関数を使うことで、サイト管理者が必要な情報や通知を簡単に確認できるカスタムウィジェットを作成できます。
以下がwp_add_dashboard_widget()関数の説明になります。
<?php
wp_add_dashboard_widget(
string $widget_id,
string $widget_name,
callable $callback,
callable $control_callback = null,
array $callback_args = null,
string $context = 'normal',
string $priority = 'core'
);
wp_add_dashboard_widget()関数の引数の内容は以下になります。
引数名 | 型 | 必須 | 説明 |
---|---|---|---|
$widget_id | string | 必須 | ウィジェットの一意のID(HTMLの id 属性に使用) |
$widget_name | string | 必須 | ウィジェットのタイトル(ダッシュボードに表示) |
$callback | callable | 必須 | ウィジェットの内容を出力する関数( echo で表示) |
$control_callback | callable | 任意 | ウィジェットの設定を出力する関数(設定画面用) |
$callback_args | array | 任意 | $callback に渡される引数(デフォルト:null ) |
$context | string | 任意 | ウィジェットを表示するエリア( normal , side , column3 , column4 ) |
$priority | string | 任意 | ウィジェットの表示優先度( high , core , default , low )z |
合わせて、以下がWordPress公式のwp_add_dashboard_widget()関数の説明ページになりますので、よろしければご確認ください。
wp_dashboard_setupフック
wp_dashboard_setupフックは、WordPressのダッシュボードウィジェットを追加または変更するためのフックです。
このフックを使用することで、標準のウィジェットを削除したり、新しいウィジェットを追加したりできます。
このフックは、管理画面のダッシュボードが読み込まれる際に実行され、カスタムウィジェットの登録や設定を適用するタイミングとして最適です。
add_action(‘wp_dashboard_setup’, ‘【実行する関数】’)というコードにより、wp_dashboard_setupフックが実行されるタイミングで 【実行する関数】が呼び出され、【実行する関数名】で定義した自作のウィジェットがダッシュボードに追加される仕組みになっています。
このフックを活用すると、管理者向けの情報を見やすく整理できるため、サイトの運営効率が向上します。例えば、サイトのアクセス統計を表示するウィジェットを追加したり、特定のユーザー向けのカスタマイズメッセージを表示することも可能です。
WordPressの管理画面をより便利にカスタマイズする際に、重要な役割を果たすフックの一つです。
合わせて、以下がWordPress公式のwp_dashboard_setupフックの説明ページになりますので、よろしければご確認ください。
まとめ
当記事では、WordPressのダッシュボードに独自のウィジェットを追加する方法について解説しました。
ダッシュボードウィジェットの追加はややニッチな実装ではありますが、使いこなせるようになると、テーマ開発時に独自の情報を表示したり、サイト管理者向けの通知を提供したりと、さまざまな用途で活用できます。
また、プラグイン開発においても、特定の機能や情報を管理画面で簡単に確認できるようにするために役立つ実装です。ぜひ、実際の開発やお仕事の現場で本記事を参考にしてみてください。
お気軽に皆さんのご要望をお聞かせください!
どんなに些細なことでも構いません!よろしければ記事や当サイトへの「こんな記事があったら仕事とかで役に立つな〜」や「こうだったらもっと役に立つのに!」といったようなご要望等をお気軽にお聞かせください!今後のサービス改善にお役立てさせていただきます!
例1)Reactの技術記事を書いてほしい!
例2)WordPressの使い方とかを初心者向けに解説してほしい!...など