Skip to content

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

概要

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

外部インターフェース

ショートコードタグ

  • タグ名: [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 となる挙動を含む)