Appearance
SC-007 メール画像ショートコード
概要
- 指定ホール・日付に対応するメール画像を取得し、ページ内に埋め込み表示する。
hall(ホール名)とdate(日付)を属性で受け取り、MailImageConverterでバリデーション・DTO 変換後、MailImageController→MailImageService経由で画像情報を取得、View で HTML にレンダリングする。
メイン画像のファイル名と配置(運用前提)
メインのブログ用静止画は、MailImageService が 画像ファイル名を規則に従って連結して URL を組み立て、View(MailImage)がその URL を img 等に渡して表示する実装になっている。表示に先立ち、次の規則で メディアサーバー(本番では wp-content/uploads/ 配下)に同名ファイルを保存・公開しておく必要がある。
ファイル名の規則
次の 1 ファイルを 1 枚のメイン画像として参照する。
{YYYYMMDD}{HallEnum の値}_blog.png
{YYYYMMDD}: ショートコードのdate属性(例:20240101){HallEnum の値}: 対象ホールのHallEnumの 英小文字の列挙値(island/espasu/bigapple/uno)。日本語のホール名ではない。
ベース URL は AppConstants::IMAGE_BASE_URL(https://www.slotkouryaku.com/wp-content/uploads/)。
連結例: https://www.slotkouryaku.com/wp-content/uploads/20240101island_blog.png
ファイル名の例(保存が必要な名前)
| ショートコード例(抜粋) | 必要なファイル名(uploads/ 直下相当) |
|---|---|
hall="アイランド秋葉原" date="20240101" | 20240101island_blog.png |
hall="エスパス秋葉原" date="20240101" | 20240101espasu_blog.png |
hall="ビッグアップル秋葉原" date="20240101" | 20240101bigapple_blog.png |
hall="秋葉原uno" date="20240101" | 20240101uno_blog.png |
※ コード参照: core_src/Service/mail_image_service/MailImageService.php($image_url の組み立て)、core_src/Constants/AppConstants.php(IMAGE_BASE_URL)。
外部インターフェース
ショートコードタグ
- タグ名:
[MailImage] - 入力例:
[MailImage hall="アイランド秋葉原" date="20240101"]
属性一覧
| 属性 | 役割 | 必須 |
|---|---|---|
hall | 対象ホール名(HallEnum 対応) | ○ |
date | 対象日付(YYYYMMDD 形式) | ○ |
エラー
| 条件 | ユーザー向け挙動 | メッセージ / ログ |
|---|---|---|
hall 未指定または不正値 | バリデーションエラーメッセージ表示(esc 済) | ShortCodeHelper 経由でバリデーションログ出力 |
date 未指定または YYYYMMDD 形式不正 | バリデーションエラーメッセージ表示(esc 済) | ShortCodeHelper 経由でバリデーションログ出力 |
サービス・コントローラーの Throwable | エラーが発生しました:execute_if_not_admin | error_log(先頭 [ShortCodeHelper]) |
更新不可とみなすもの(git管理外の内容に依存し、リポジトリだけでは追従できない依存)
- ショートコード名
MailImageを変更しない- 理由: 既存投稿本文にショートコードタグが直書きされているため
- 属性名
hall/dateを変更しない- 理由: 既存投稿本文に属性名が直書きされているため