Skip to content

SC-006 誕生日一覧ショートコード

概要

  • スロット機種キャラクター・声優の誕生日一覧を月別に折り畳み表示するショートコード。
  • 全データを DB から取得し、キャラ誕生日と声優誕生日に分類してキャラ名昇順(機種名昇順)でソート後、Twig テンプレートで HTML を生成する。
  • 属性(month / year / display_type)は受け付けてバリデーションするが、フィルター機能は現在未実装BirthDayIndexController::execute() のコメント参照)。将来のフィルター機能実装時に有効になる。
  • 管理画面(is_admin() === true)では出力しない(空文字を返す)。

外部インターフェース

ショートコードタグ

  • タグ名: [BirthDayIndex]
  • 入力例(現状フィルターは無効): [BirthDayIndex]
  • 将来の入力例(フィルター実装後): [BirthDayIndex month="4" display_type="character"]

属性一覧

属性役割必須許容値
month月フィルター(将来実装)整数 1〜12
year年フィルター(将来実装)整数 1900〜currentYear+10
display_type表示種別フィルター(将来実装)all / character / voice_actor

属性を省略した場合、または空文字を渡した場合は null として扱い、フィルターなし(全件表示)となる(現在は常に全件表示)。

エラー

条件ユーザー向け挙動メッセージ / ログ
month が非数値または範囲外(1〜12 以外)バリデーションメッセージをインライン表示Messages::VALIDATION_MONTH_INVALID_TYPE / Messages::VALIDATION_DATE_INVALID_MONTH
year が非数値または範囲外(1900〜currentYear+10)バリデーションメッセージをインライン表示Messages::VALIDATION_YEAR_INVALID_TYPE / Messages::VALIDATION_YEAR_INVALID_RANGE_FORMAT
display_type が非文字列または許容値以外バリデーションメッセージをインライン表示Messages::VALIDATION_DISPLAY_TYPE_INVALID_TYPE / Messages::VALIDATION_DISPLAY_TYPE_INVALID_VALUE_FORMAT
DB 取得やレンダリングの Throwableエラーが発生しました:execute_if_not_admin を表示error_log(先頭 [ShortCodeHelper]、クラス名・メッセージ・ファイル・行番号)
管理画面(is_admin() === true出力なし(空文字)

バリデーション例外(ValidationException)は esc_html() でサニタイズしてインライン表示する(ShortCodeHelper::execute_if_not_admin() 参照)。

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

公開契約(Breaking change 扱い)

  • ショートコード名 BirthDayIndex を変更しない
    • 理由: 過去投稿の本文に文字列が直書きされているため、変更するとショートコードが機能しなくなる
  • 属性名 month / year / display_type を変更しない
    • 理由: フィルター機能が実装された際にそのまま使われる公開 API であり、ショートコードを記述したコンテンツの互換性を維持するため