Appearance
SC-011 日別記事パフォーマンス計測ショートコード
概要
DailyArticleTemplateControllerの実行をプロファイリングし、クエリ数・実行時間・メモリ使用量・出力長・遅いクエリ TOP 5 を HTML で表示する開発・管理者向けショートコード。- 管理者(
manage_options)またはローカル環境以外では空文字を返す(一般ユーザーへの誤表示防止)。 - 同機能の REST API エンドポイント(
GET /wp-json/daily-article/v1/performance-measurement)もPerformanceMeasurementHandlerが提供する。
外部インターフェース
ショートコードタグ
- タグ名:
[daily_article_performance] - 入力例:
[daily_article_performance date="20240101" halls="アイランド秋葉原,エスパス秋葉原"]
属性一覧
| 属性 | 役割 | 必須 |
|---|---|---|
date | 計測対象日(YYYYMMDD / YYYY-MM-DD 等。省略時は最新日付を使用) | — |
halls | 計測対象ホール(カンマ区切り。省略時: アイランド秋葉原,エスパス秋葉原) | — |
REST API エンドポイント(PerformanceMeasurementHandler)
| 項目 | 値 |
|---|---|
| メソッド | GET |
| パス | /wp-json/daily-article/v1/performance-measurement |
| 権限 | manage_options または ローカル環境 |
クエリパラメータ
| パラメータ | 役割 | 必須 |
|---|---|---|
date | 計測対象日(YYYY-MM-DD 形式。省略時は最新日付) | — |
halls | 計測対象ホール(カンマ区切り。省略時: アイランド秋葉原,エスパス秋葉原) | — |
レスポンス(200 OK)
json
{
"success": true,
"parameters": { "date": "2024-01-01", "halls": "アイランド秋葉原,エスパス秋葉原" },
"performance": {
"query_count": 42,
"execution_time": 0.1234,
"memory_usage": 1048576,
"memory_usage_mb": 1.0,
"top_5_queries": [ ... ]
},
"output_length": 12345
}top_5_queries は manage_options またはローカル環境のみ含まれる。
エラー
| 条件 | ユーザー向け挙動 | メッセージ / ログ |
|---|---|---|
| 非管理者かつ非ローカル環境(ショートコード) | 空文字を返す(表示なし) | — |
\Exception(ショートコード) | エラー内容を記した赤枠 div を表示 | error_log(先頭 [PerformanceMeasurement Shortcode]) |
date が YYYY-MM-DD 形式でない(REST) | {"success": false, "error": {"message": "..."}} / HTTP 400 | Messages::DATE_FORMAT_INVALID |
\Exception(REST) | {"success": false, "error": {"message": "..."}} / HTTP 500 | error_log(先頭 [PerformanceMeasurementHandler])+ Messages::INTERNAL_ERROR |
更新不可とみなすもの(git管理外の内容に依存し、リポジトリだけでは追従できない依存)
- ショートコード名
daily_article_performanceを変更しない- 理由: 既存投稿本文にショートコードタグが直書きされているため
- 属性名
date/hallsを変更しない- 理由: 既存投稿本文に属性名が直書きされているため
- REST パス
/wp-json/daily-article/v1/performance-measurementを変更しない- 理由: 外部ツール・ブックマーク等から直接叩かれている可能性があるため