Skip to content

SC-004 日別記事関連日ショートコード

概要

  • 指定ホール・日付の「関連日結果」(過去の類似イベント日データ)と「日別結果カレンダー」を日別記事ページに埋め込み表示する。
  • 関連日が存在しない場合はカレンダーのみを表示する。
  • halldate 属性は必須で、省略または不正値のときは ValidationException となり、ユーザー向けにはバリデーションメッセージを表示する(詳細は「エラー・境界条件」)。

ワイヤーフレーム

同一 UI の記事埋め込み枠は PUB-001RelationalDayBlock(P-12)と共有する。

ブロック一覧

ブロックIDブロック名表示内容初期値ユーザー操作アクション
B-0コンテナ「関連日・日別カレンダー」見出し+配下ブロック常時表示なし-
B-1関連日リンク関連日チップ(日付一覧)。本番はアコーディオン+差枚・画像テーブル関連日が 1 件以上のときのみチップ/詳細リンク・さらに表示(本番)-
B-2日別結果カレンダー日別カレンダー枠(非同期読み込み)常時表示(関連日 0 件時も表示)なし(カレンダー操作は本番 JS)-

表示条件・注記

  • 属性: hall / date 必須。不正時はバリデーションメッセージ。
  • 関連日 0 件: B-1 を出さず B-2 のみ表示。
  • 管理画面: is_admin() ではショートコード全体を出力しない。
  • ワイヤーフレーム: 関連日ありの通常ケースのみサンプル表示(0 件時は注記どおり B-1 非表示)。
  • B-1 の粒度: 共有ブロックは関連日チップの要約表示。本番のアコーディオン+差枚・画像テーブル詳細行は本ワイヤーでは省略し、設計書本文・Twig(relational_day_result.twig)を正とする。

外部インターフェース

ショートコードタグ

  • タグ名: [CustomCode_CreateDailyArticleRelationalDay]
  • 入力例: [CustomCode_CreateDailyArticleRelationalDay hall="アイランド秋葉原" date="20240101"]

属性一覧

属性役割必須
hall対象のホールを指定(HallEnum へ変換)
date対象日を指定(\DateTime へ変換)

エラー・境界条件

条件ユーザー向け挙動メッセージ / ログ
hall 不正 / 未指定ValidationExceptionShortCodeHelper が捕捉し、バリデーションメッセージを表示error_log:本番は識別1行のみ([ShortCodeHelper] ValidationException)。WP_DEBUG 時は識別行に加え、例外メッセージを制御文字除去・単一行化し、返却文字列全体が 200 文字以内(末尾 を含む)で付加
date 不正 / 未指定同上同上
関連日データが 0 件関連日セクションを出さずカレンダーのみ表示(想定内の分岐)ログなし
管理画面(is_admin())での実行AbstractShortCode::render() が先に空文字を返し、ショートコード本体は未実行ログなし
処理中のその他 Throwable固定文言(エラーが発生しました:execute_if_not_adminerror_log[ShortCodeHelper] {class}: {message} in {file} on line {line}

今後の更新で崩してはいけないところ(互換性契約)

公開契約(Breaking change 扱い)

  • ショートコード名 CustomCode_CreateDailyArticleRelationalDay を変更しない
    • 理由: 過去投稿本文にショートコード文字列が直書きされているため
  • 属性名 hall / date(省略時に ValidationException となる挙動を含む)