Skip to content

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_templatedaily_article_template_300 秒L2 / ハッシュ
daily_article_the_contentdaily_article_tc_v4_1 時間考察 HTML
daily_article_date_postdaily_article_date_1 時間日付→投稿ID
daily_article_rendered_htmldaily_article_html_v2_12 時間非ログイン向け最終 HTML 断片(鮮度は明示クリアが正。TTL は安全網)
daily_article_block_htmldaily_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_actionclear_one(1 種別)または clear_all
acm_idclear_one 時のキャッシュ種別 ID

Nonce フィールド: acm_nonce(検証アクション: cache_management_admin)

リダイレクト後クエリ(通知) ​

クエリ内容
acm_success1 / 0
acm_msg表示文言(AdminQueryUrl::build() 経由。呼び出し側は生値)

画面仕様 ​

ブロック一覧 ​

ブロックIDブロック名表示内容ユーザー操作
B-0導入・注意対象外(レート制限・DI・ページキャッシュ)とグループ変更後の残存注意—
B-1種別一覧種別名、説明、保存先、設定 TTL、状態(件数/期限またはプローブヒット)行ごとのクリア、Transient キー展開
B-2一括操作表示対象のクリア可能な種別をまとめてクリア確認ダイアログ後に実行

一覧行の状態表示 ​

保存先状態の内容
Transientwp_options 上のキー件数(options キー N 件)・期限に加え、公開記事由来キーのプローブ ヒット/未ヒット件数。キー展開は options 列挙キーとプローブヒットのみ(未ヒットキーは一覧に出さない)
object cacheカタログ静的プローブ+公開記事由来の動的プローブのヒット/未ヒット件数。キー展開はヒット(実在)のみ。中身なし

用語:

  • ヒット: プローブキーがキャッシュに存在する
  • 未ヒット: プローブキーがキャッシュに無い(エラーではない)
  • options キー: Transient の wp_options 列挙件数(外部オブジェクトキャッシュ利用時は options に無くてもプローブでヒットし得る)

エラー ​

条件ユーザー向け挙動メッセージ
権限不足wp_die権限メッセージ
nonce 不正リダイレクト+失敗通知認証失敗
未知の種別 IDリダイレクト+失敗通知未知の種別
クリア対象外の種別リダイレクト+失敗通知クリア不可

更新不可とみなすもの ​

  • page slug cache-management-admin を安易に変更しない(ブックマーク・日別記事一覧からの導線)
  • カタログの種別 ID(link_month 等)は URL/POST で参照されるため互換性に注意する