店舗ページの見直しを頼まれて、まず本文を読む。店の紹介、こだわりの説明、行き方の案内。どこも古くなっていないので「確認しました」と返す。二週間して、ランチの終了時刻が変わっていたと知る——という順番が、店舗ページでは起こります。
本文は合っていました。古かったのは本文の外です。
営業時間、定休日、ラストオーダー、席数、電話番号。この手の値は本文ではなくカスタムフィールド投稿に本文とは別の「項目名と値」を持たせる入力欄。資本金や営業時間のような値を本文の外で管理でき、ACFなどのプラグインで追加するのが一般的。やACFAdvanced Custom Fields。投稿に独自の入力欄(カスタムフィールド)を追加するプラグインの定番。無料版と有料のPro版がある。のフィールドに入っていて、テンプレートが拾って表示していることが多い。読み直す対象としての「本文」には、そもそも入っていません。
この記事は、店舗の数だけページがある飲食店のサイトで、その値をどう回し続けるかを扱います。道具はコンテンツ更新管理というプラグインです。
ページ単位で見直すと、値だけが素通りする

投稿単位の管理対象は1記事に1つです。店舗ページに「半年ごとに見直す」と決めて担当者を置けば、期限の日に通知が届き、担当者がページを開いて確認結果を登録するところまでは回る。引っかかるのは、その人が何を見て「合っている」と判断したのかが本文だということです。
もうひとつ、静かに効いてくる仕様があります。投稿単位の管理対象には「前回の確認以降に中身が変わったか」を見る機能が付きますが、比較しているのはタイトル・本文・抜粋・スラッグURLの末尾に使う、投稿やカテゴリーごとの英数字の名前。このサイトなら plugear.net/wordpress-japan-map/ の「wordpress-japan-map」の部分。・アイキャッチ・タームの6項目です。カスタムフィールドやACFの値は入っていません。営業時間のフィールドだけを書き換えても、その店舗ページの管理対象は「変更あり」になりません。逆に、本文の誤字を一文字直せば変更ありが立つ。
ページの鮮度と、そのページが表示している値の鮮度は、別々に古くなります。見直す単位がページのままだと、この差は埋まらない。
どの値が本文の外にあるかを、先に書き出す

本文の外へ出やすいのは、営業時間、ラストオーダー、定休日、臨時休業のお知らせ、席数、電話番号あたり。全部に期限を持たせる必要はなく、間違って載っていたときに客が困る順に選べば足ります。営業時間と定休日が先に来るのは、間違えると来店した人が閉まった店の前に立つからです。
登録の入口は、その値がどこで作られているかで変わります。ACFのフィールドとして定義されているなら、投稿編集画面の「コンテンツ更新管理(ACF フィールド)」というメタボックスから、その投稿に出ているフィールドを選ぶ。テーマや自作プラグインが素のメタとして保存しているなら、カスタムフィールドの側から。こちらは投稿にあるメタキーから選ぶ・手で入力する・運用ルールで事前に登録しておくの3経路です。
ACFが作ったメタキーは、カスタムフィールドの候補には出ません。手で入力すれば登録できますが、警告が出ます。禁止ではなく警告で通す形にしたのは、ACFを外したあとに残った生のメタを管理したい場面があるからです。それに、ACF由来かどうかの判定は「business_hours の隣に _business_hours があって、その中身が field_ で始まる」という経験則でしかない。私が気にしたのは誤判定のほうでした。経験則を根拠に登録まで止めてしまうと、外れたときに利用者の側から回避できません。同じ値をACF側とカスタムフィールド側の両方から持てる形にはなるので、どちらで持つかは先に決めておくほうが楽です。
なお、設定画面の「カスタムフィールド設定」はメタキーと表示名の候補カタログで、登録しても既存の店舗ページに管理対象ができるわけではありません。20店舗ぶんを作るのは運用ルールの役目です。
期限は店舗ごとではなく、値ごとに立てる

ACFフィールドとカスタムフィールドの管理対象は、1つの投稿に何個でも置けます。店舗ページ1枚の中で、値ごとに周期を分けられるということ。
- 営業時間:季節で変える店なら3か月ごと。通年で動かない店なら年1回
- 定休日:年1回。祝日の扱いを変えた年は、変えた時点で確認を完了させて次の期限を立て直す
- 年末年始や臨時休業の告知:一度きりなので更新頻度は「なし」を選び、下げる予定の日を次回確認日に入れる
更新頻度は1〜999の数字に日・週・月・年を組み合わせる形で、「なし」も選べます。上の3行は想定の当て方で、どこかのチェーンで測った数字ではありません。
担当者の欄には、WordPressのユーザーが1人だけ入ります。「◯◯店」でも「店長」でもなく、その人の名前。指名できるのは、確認を実行する権限を持ち、かつその投稿を編集できるユーザーに限られます。店舗ページがカスタム投稿タイプ「投稿」「固定ページ」とは別に用意する独自の投稿の種類。物件・店舗・用語のように同じ形の情報を、通常の記事と混ぜずに管理する。なら、店長のロールでそれを編集できるかを先に確かめてください。
20店舗ぶんを1件ずつ登録しない
店舗が20あって、管理する値が4つずつなら管理対象は80件。1件ずつ画面を開いて入れる作業ではありません。
投稿タイプとタクソノミー投稿を分類する仕組みの総称。カテゴリーとタグが標準で、プラグインやテーマが「エリア」「業種」のような独自の分類を追加することもある。の条件に、対象のフィールド・初期担当者・更新頻度・重要度・通知設定を持たせた運用ルールを作ると、条件に合う投稿へまとめて配れます。店舗が独立したカスタム投稿タイプになっていれば、条件は投稿タイプ1つで足りる。新しい店舗ページは最初の保存で管理対象が付くので、店舗が増えていく業態ほど効きます。既存の20店舗へ当てる一括適用の流し方は条件で担当者と周期をまとめて配る手順のほうに書きました。
多店舗で配るときに引っかかる場所が2つあります。
初期担当者は1人しか置けない。 配った直後は80件すべてが同じ人の担当になります。店長ごとに割るなら、配ってから一覧を店舗で絞り込み、一括操作で担当者を差し替える。担当者・承認者の割り当てを変えられるのは管理対象全体を管理する権限を持つ人(既定では管理者)なので、ここは本部側の作業です。
期限が1日に集まる。 ルールが入れる次回確認日は「適用した日+更新頻度」。80件を一度に配れば、3か月後の同じ日に80件の期限が立ち上がります。エリアや業態でルールを分けて、適用する日を数日ずらしておくくらいの手当てはしておきたいところ。
期限が過ぎても、営業時間の表示は変わらない
期待とずれやすいので、はっきり書きます。ACFフィールドとカスタムフィールドの管理対象で選べる期限切れ処理は、「何もしない」(既定)・「管理画面で警告」・「通知のみ」の3つだけ。期限を過ぎても、フロントに出ている営業時間はそのまま表示され続けます。消すことも、隠すことも、書き換えることもしません。
値がどこから出力されているかを外側から知る手立てがないので、触れるのは知らせるところまで、という線が引いてあります。理由の中身は値そのものを管理対象にするときの話のほうに書いたので、ここでは繰り返しません。
投稿単位なら下書き・非公開・リダイレクトあるURLを開いたとき、別のURLへ自動で転送すること。ページを消す代わりに関連ページへ送ると、検索エンジンからの流入やブックマークを失いにくい。も選べますが、営業時間が古いという理由で店舗ページごと止めるのは本末転倒でしょう。営業時間の表を本文に置いているサイトなら、その範囲を「コンテンツ更新管理セクション」ブロックで囲んでフロント側だけ差し替える手もあります。ただし代替メッセージの既定の文言は「現在、この情報は確認中です。」で、営業時間の欄がこれに変わった店舗ページは閉店したのかと読まれかねない。飲食店の値は警告どまりにして、直すのは人、という形が素直だと思います。
本部が見るのは店舗の一覧ではなく、担当者別の件数
多店舗の運用で本部側が知りたいのは、どの店舗が期限を過ぎているかと、誰のところで止まっているか。この2つです。
ダッシュボードには集計8種(本日期限・期限接近・期限超過・承認待ち・重要度が重大の未対応など)と、担当者別の件数が並びます。カードの数字を押すと絞り込み済みの一覧が開き、件数は必ず一致する。一覧は12列あって、担当者・期限状態・種類・変更有無を含む9軸で絞れます。
店長の側が開くのは「自分の担当」のほうです。本日期限・期限接近・期限超過・承認待ち・差し戻し・対応完了の6区分で、自分が指名されている行だけが並ぶ画面。一覧に全件が出るのは、管理対象全体を管理する権限を持つ人か、他人の投稿を編集できる人(既定では管理者・編集者)に限られます。店長に他店舗のページを触らせたくないなら、その線引きはWordPress側のユーザー権限で作る話になる。
営業時間の更新漏れは、担当が決まっていないから起きるというより、見直す単位がページのままだから起きます。値の側に担当者と次回確認日を置けば、確認する人が見るものが本文から値へ移る。
期限と担当をサイトの中に持たせる考え方は4つの管理単位をまとめた記事に、製品ページは コンテンツ更新管理 にあります。
