Storefront サポートページの WordPress 固定ページ正本化¶
背景¶
Storefront のサポート関連ページは、運用担当者が問い合わせ先・FAQ・案内文を更新する対象である。 コード固定の文言や個別 route 実装にすると、WordPress CMS 上の固定ページと二重管理になり、 公開内容の差分や古い問い合わせ導線が残るリスクがある。
決定¶
Storefront のサポート関連ページ本文は WordPress CMS の固定ページを正本とする。 さらに Storefront の URL パス (pathname) を WordPress 固定ページの URI として 1:1 で解決し、 コード側に slug / ページ単位の固定マッピングを一切持たない。
| Storefront URL | WordPress 固定ページ (URI = pathname) | 備考 |
|---|---|---|
/support |
URI /support (slug support) |
サポートトップ |
/support/contact |
URI /support/contact (親 support の子) |
問い合わせ窓口 |
/support/<path> |
URI /support/<path> |
その他サポート配下の固定ページ |
Storefront は location.pathname をそのまま nodeByUri(uri:) に渡して WordPress 固定ページを取得し、
StaticPageContent / SafeHtml で描画する。/support も /support/<child> も同一の generic loader で扱う。
サブページは WordPress 側で 親ページ support の子として固定ページを作成すれば、その URI が
そのまま Storefront URL に対応する。階層の深さに依存しないよう、ルートは splat route (/support/$) で受ける。
実装要件¶
/support/contactのようなサポート配下ページに、Storefront 側の専用 hardcoded page route を追加しない。- slug / pathname → WordPress ページの固定マッピング表をコードに持たない。
location.pathnameを WordPress URI として解決する規則だけを持つ。 - サポート本文・問い合わせメール・外部フォーム URL・FAQ 導線など、運用で変わり得る情報は WordPress 固定ページ本文で管理する。
- Storefront 側に残してよい責務は、URI 正規化 (末尾スラッシュ除去 / lowercase 化)、CMS 取得、breadcrumb / back button などの共通ページ chrome、HTML sanitization に限る。
- WordPress 固定ページが存在しない場合は、空の固定文言や仮ページへ fallback せず 404 として扱う。
- CMS ページではない app 固有ルートへの逃がしだけを例外として明示する。現状の例外は
/support/maintenance→/maintenanceの redirect alias 1 件のみ。
運用要件¶
- WordPress CMS で少なくともサポートトップの固定ページ (slug
support, URI/support) を publish する。 - support 配下に表示したい子ページは、WordPress 側で親ページに
supportを指定し、slug を Storefront URL 末尾と一致させて作成する (例: 親support+ slugcontact→ URI/support/contact)。Storefront のコード変更・再デプロイは不要。 - 子ページの slug は 半角小文字にする (日本語タイトルから自動生成された slug は手動で ASCII へ修正する)。
- 問い合わせ先や Google Form などの外部 URL を変更する場合、Storefront code ではなく WordPress 固定ページ本文を更新する。
- WordPress のパーマリンク設定は pretty permalink (投稿名 / 数字ベース) にし、
nodeByUriが URI を解決できる状態を維持する。 - staging / production で固定ページの存在を揃える必要がある場合は、backup-first の運用入口を使い、CMS state を直接上書きする raw 操作を避ける。
検証¶
/supportが WordPress 固定ページ (URI/support) の title / content を表示すること。/support/contactが WordPress 固定ページ (URI/support/contact) の title / content を表示すること。- Storefront のコードに slug / pathname → ページの固定マッピング表が存在しないこと (
location.pathnameを URI として解決していること)。 /support/contactに Storefront 固定のsupport.contact.tsx相当の本文が残っていないこと。- サポート配下ページの内部リンクは、
/support/<path>として維持されること。 /support/maintenanceのみ app ルート/maintenanceへ redirect すること。