Appearance
ADM-033 アプリキャッシュ管理画面
概要
- アプリが明示的に定義したキャッシュ種別(WordPress object cache グループと Transient プレフィックス)を一覧し、設定 TTL・状態を確認したうえで種別ごと/一括クリアできる管理画面。
- Redis 等の全キー列挙は行わない。レート制限・クールダウン Transient、PHP-DI コンパイルキャッシュ、ページキャッシュ/CDN は対象外。
- 日別記事一覧の「指定日付キャッシュクリア」とは別系統(こちらは主に DailyArticleTemplate L2・考察 HTML・HTML 断片)。月別リンク(
db_Link_month/LinkMonthRepository)は本画面からクリアする。 - object cache の種別クリアは
wp_cache_supports( 'flush_group' )が true の実装(本番想定: Redis Object Cache 等)でグループ全体を消す。非対応環境では既知プローブキーのwp_cache_deleteのみ行い、画面にその旨を表示する。 - 状態表示は (1)
wp_options上の Transient 残骸と (2) 公開中日別記事から再構築したキーへのget_transient/wp_cache_getプローブ(最大 100・中身非表示)を組み合わせる。外部オブジェクトキャッシュ利用時もプローブでヒットを確認できる。マスター系 object cache は日付連動プローブ対象外。 - 日別記事テンプレ L2 プローブは全ホール結合キーと日付ハッシュのみ(ホール部分集合キーは対象外)。
get_transientは値がfalseの場合未ヒット扱い。 - 未ヒットはエラーや障害ではなく、プローブしたキーがいまキャッシュに無い(未キャッシュ/期限切れ/未生成)ことを指す。キー展開リストには実在キーのみを出し、未ヒットは状態要約の件数として示す。
日別記事 Transient 種別(抜粋)
| カタログ ID | プレフィックス | 設定 TTL | 備考 |
|---|---|---|---|
daily_article_template | daily_article_template_ | 300 秒 | L2 / ハッシュ |
daily_article_the_content | daily_article_tc_v4_ | 1 時間 | 考察 HTML |
daily_article_date_post | daily_article_date_ | 1 時間 | 日付→投稿ID |
daily_article_rendered_html | daily_article_html_v2_ | 12 時間 | 非ログイン向け最終 HTML 断片(鮮度は明示クリアが正。TTL は安全網) |
daily_article_block_html | daily_article_block_html_v1_ | 12 時間 | 遅延ブロック完成 HTML(関連日・MoveDayHall・MailImage・ランキング・ヒートマップ簡易 pc/sp 等。鮮度は明示クリアが正) |
外部オブジェクトキャッシュではプレフィックス列挙による削除が 0 件になるため、種別クリアでは削除に加えて世代を上げる。テンプレ L2・HTML 断片・遅延ブロックは日別記事フロントの全体世代(daily_article_fe_cache_gen_all)を上げる。考察 HTML は考察欄専用の世代(daily_article_fe_cache_gen_tc)だけを上げ、他の日別記事フロントキャッシュは残す(Issue #3926)。日付→投稿ID は世代を持たない。
非ログイン向けの「日別記事 HTML 断片」には考察欄の描画結果も含まれる。考察 HTML だけをクリアしても、断片が残っている間は公開ページの表示は変わらない。考察欄の変更を公開ページにすぐ反映したいときは、HTML 断片もクリアする。
外部インターフェース
管理画面 URL
| 項目 | 値 |
|---|---|
| URL | /wp-admin/admin.php?page=cache-management-admin |
| メニュー名 | アプリキャッシュ管理 |
| 親メニュー | サイト運営ダッシュボード(site-ops-dashboard) |
| 権限 | manage_options |
フォーム POST(同期)
POST admin.php?page=cache-management-admin。
| パラメータ | 説明 |
|---|---|
acm_action | clear_one(1 種別)または clear_all |
acm_id | clear_one 時のキャッシュ種別 ID |
Nonce フィールド: acm_nonce(検証アクション: cache_management_admin)
リダイレクト後クエリ(通知)
| クエリ | 内容 |
|---|---|
acm_success | 1 / 0 |
acm_msg | 表示文言(AdminQueryUrl::build() 経由。呼び出し側は生値) |
画面仕様
ブロック一覧
| ブロックID | ブロック名 | 表示内容 | ユーザー操作 |
|---|---|---|---|
B-0 | 導入・注意 | 対象外(レート制限・DI・ページキャッシュ)とグループ変更後の残存注意 | — |
B-1 | 種別一覧 | 種別名、説明、保存先、設定 TTL、状態(件数/期限またはプローブヒット) | 行ごとのクリア、Transient キー展開 |
B-2 | 一括操作 | 表示対象のクリア可能な種別をまとめてクリア | 確認ダイアログ後に実行 |
一覧行の状態表示
| 保存先 | 状態の内容 |
|---|---|
| Transient | wp_options 上のキー件数(options キー N 件)・期限に加え、公開記事由来キーのプローブ ヒット/未ヒット件数。キー展開は options 列挙キーとプローブヒットのみ(未ヒットキーは一覧に出さない) |
| object cache | カタログ静的プローブ+公開記事由来の動的プローブのヒット/未ヒット件数。キー展開はヒット(実在)のみ。中身なし |
用語:
- ヒット: プローブキーがキャッシュに存在する
- 未ヒット: プローブキーがキャッシュに無い(エラーではない)
- options キー: Transient の
wp_options列挙件数(外部オブジェクトキャッシュ利用時は options に無くてもプローブでヒットし得る)
エラー
| 条件 | ユーザー向け挙動 | メッセージ |
|---|---|---|
| 権限不足 | wp_die | 権限メッセージ |
| nonce 不正 | リダイレクト+失敗通知 | 認証失敗 |
| 未知の種別 ID | リダイレクト+失敗通知 | 未知の種別 |
| クリア対象外の種別 | リダイレクト+失敗通知 | クリア不可 |
更新不可とみなすもの
pageslugcache-management-adminを安易に変更しない(ブックマーク・日別記事一覧からの導線)- カタログの種別 ID(
link_month等)は URL/POST で参照されるため互換性に注意する