22:00よりサイトのメンテナンスを開始します×

エーデルハーツ

Custom WordPress Support & Development

WordPress 3分間フッキング:ダッシュボードにサイト統計ウィジェットを追加して一目で状況把握

WordPress 3分間フッキング:ダッシュボードにサイト統計ウィジェットを追加して一目で状況把握

WordPress 3分間フッキングシリーズについて

こんにちは、WordPressエンジニアの皆さん!今日から「WordPress 3分間フッキング」という新シリーズをスタートします。

あの国民的料理番組「3分間クッキング」をもじった、WordPress開発者のための「3分間フッキング」です!

このシリーズでは、WordPressの真髄とも言える「フック」を使ったちょっとした小技から実践的なテクニックまで、functions.phpに数行書くだけで実現できる便利な機能を紹介していきます。

「3分」にこだわる必要はありませんが、サクッと理解して、すぐに実装できる内容を心がけていきますね。

WordPress 3分間フッキング - 3分間クッキングパロディ

ダッシュボードウィジェットとは?

WordPressにログインすると最初に表示される管理画面、それが「ダッシュボード」です。ここには「クイックドラフト」や「WordPressニュース」など、デフォルトでいくつかのウィジェットが表示されていますよね。

でも、実はこのダッシュボードに自分でウィジェットを追加することができるんです!

今日はその方法として、サイトの統計情報(投稿数、ページ数、コメント数など)を一目で確認できるウィジェットを作成します。クライアントに納品するWordPressサイトに追加しておけば、「使いやすさ」と「プロフェッショナル感」がグッとアップしますよ!

WordPressダッシュボード統計情報ウィジェット

今回実装する機能の概要

今回実装する機能は以下の通りです:

  • WordPressダッシュボードに「サイト統計情報」ウィジェットを追加
  • ウィジェット内に以下の情報を表示
    • 公開済み投稿数
    • 公開済みページ数
    • 承認済みコメント数
    • 総ユーザー数
    • カテゴリー数
    • タグ数
  • スタイリングも含めて実装

それでは早速、コードを見ていきましょう!

コード解説

wp_dashboard_setupフックの活用

まず最初のコードブロックを見てみましょう:

ここがフックの重要ポイント! ‘wp_dashboard_setup’ というアクションフックに自作関数をフックしています。

このコードでやっていることは簡単です:

  1. wp_3min_hooking_add_dashboard_stats_widget()という関数を定義しています
  2. この関数内でwp_add_dashboard_widget()を呼び出し、新しいダッシュボードウィジェットを登録しています
  3. add_action()を使って、WordPress が ‘wp_dashboard_setup’ アクションを実行するタイミングで上記関数を呼び出すよう設定しています

wp_add_dashboard_widget()関数には3つのパラメーターを渡しています:

パラメーター 役割 今回の設定値
ウィジェットID システム内部で使用する一意の識別子 ‘site_statistics_widget’
ウィジェットタイトル ダッシュボードに表示されるタイトル ‘サイト統計情報’
コールバック関数 ウィジェットの内容を生成する関数 ‘wp_3min_hooking_stats_widget_callback’

ウィジェット登録の仕組み

WordPressのフックシステムは「いつ」と「何を」の2つの要素で成り立っています。

今回の例では:

  • いつ:’wp_dashboard_setup’ アクションが実行されるとき(ダッシュボードが準備されるタイミング)
  • 何を:’wp_3min_hooking_add_dashboard_stats_widget’ 関数を実行する

このように、WordPressの処理の流れの中で、特定のタイミングに自分のコードを「フック」することで機能を拡張するのが、まさにWordPressフックの基本的な使い方なんです!

WordPressフックシステムの概念図

統計情報の取得と表示

次に、ウィジェットの内容を生成するコールバック関数を見てみましょう:

このコードでは以下のことを行っています:

  1. 各種統計情報をWordPressの組み込み関数を使って取得しています
    • wp_count_posts() – 投稿とページの数を取得
    • wp_count_comments() – コメント数を取得
    • count_users() – ユーザー数を取得
    • wp_count_terms() – タクソノミー(カテゴリー、タグなど)の数を取得
  2. 取得した情報をHTMLでリスト表示しています
  3. インラインCSSでスタイリングを追加しています
  4. セキュリティのためにesc_html()でエスケープ処理を行っています

これらの関数はWordPressが提供している便利な関数群で、コアのデータを簡単に取得できます。知っておくと様々な場面で役立ちますよ!

実装手順

さあ、実際にこの機能を自分のWordPressサイトに追加してみましょう!

  1. WordPressの管理画面から「外観」→「テーマエディター」へ移動します
  2. 右側のファイル一覧から「functions.php」を選択します
  3. ファイルの適切な位置に、上記のコードを追加します
  4. 「ファイルを更新」ボタンをクリックして保存します
  5. ダッシュボードに移動して、新しいウィジェットが表示されているか確認します


WordPressのfunctions.phpでのウィジェット実装コード

こちらが実際のコード例です。HTMLの出力部分では、リスト表示のためのマークアップとスタイル指定、そして実際のデータをesc_html関数でエスケープして安全に表示しています。

上の画像のように、コード内のコメントやインデントを適切に設定することで、後から見直した時にも理解しやすくなります。特に、ユーザー数やカテゴリー数などの取得方法がわかりやすく記述されているため、カスタマイズも容易でしょう。

注意:子テーマを使用している場合は、親テーマのfunctions.phpではなく、子テーマのfunctions.phpに追加してください。

カスタマイズのポイント

このコードは基本形ですが、以下のようにカスタマイズすることも可能です:

カスタマイズ内容 変更箇所
表示する統計情報を追加/削除 コールバック関数内のデータ取得部分と表示HTMLのリスト項目
ウィジェットの表示名を変更 wp_add_dashboard_widget()の第2引数
表示スタイルを変更 コールバック関数内のスタイルタグ内のCSS
特定のユーザーロールにのみ表示 条件文で現在のユーザーのロールをチェック
データの更新頻度を調整(キャッシュ) 一時オプションを使用してデータをキャッシュ

例えば、管理者にのみウィジェットを表示したい場合は、次のように条件を追加します:

まとめ

いかがでしたか?たった数十行のコードで、WordPressダッシュボードに便利な統計情報ウィジェットを追加することができました。

WordPressのフックシステムを理解すると、プラグインをインストールしなくても様々な機能拡張が可能になります。

今回のポイントをおさらいしましょう:

  • wp_dashboard_setupアクションフックを使ってダッシュボードをカスタマイズできる
  • wp_add_dashboard_widget()関数でウィジェットを追加できる
  • WordPressの組み込み関数を使えばサイトの様々な統計情報を簡単に取得できる
  • シンプルなHTMLとCSSでプロフェッショナルな見た目を作れる

次回の「WordPress 3分間フッキング」もお楽しみに!別のフックを使った便利技をご紹介します。

質問やご要望があれば、コメント欄でお気軽にどうぞ!

あなたも今日からWordPressフッキングマスターへの第一歩を踏み出しましょう!

WordPressフッキングマスター認定証

Share / Subscribe
Facebook Likes
Posts
Hatena Bookmarks
Pinterest
Pocket
Evernote
Feedly
Send to LINE