Appearance
PUB-1 日別記事(シングル)
ワイヤーフレーム
要点
- 何の画面か: 投稿タイプ
daily_articleの公開シングル。Cocoon のテーマ枠(記事上端/下端)は PUB-0 公開画面共通(Cocoon テーマ枠)。その間が本書の対象(テンプレート出力・meta・ショートコード)。Twig 等のビュー層の扱いは 各層と責務 の「ビュー層と Twig(補足)」を参照。 - データの入口:
DailyArticleTemplateContent.phpが meta を読み、不足時は編集者向け案内だけ出して 以降のブロックは出さない(P-0)。 - ショートコード: 生成済み HTML に
do_shortcode()。詳細は ショートコード早見表 と各 SC-*。 - 重い処理: 結果ブロック(P-14)は API-001 日別記事 REST と連携する部分あり。
概要
- 対象: 投稿タイプ
daily_articleの公開シングル。テンプレート割当は「日別記事テンプレート」。ラッパーは定数DAILY_ARTICLE_TEMPLATE_PATHの値であるmyCustom/myTemplate/single-daily-article-template.php(Cocoon 子テーマのルート=get_stylesheet_directory()からの相対パス。リポジトリではmyTemplate/配下で管理)。テンプレート本体はDAILY_ARTICLE_TEMPLATE_BODY_PATHのビルド済み core 内 PHP を読み込む。_wp_page_templateに旧いmyTemplate/single-daily-article-template.phpが残る場合はdocs/posttypes/DailyArticlePostType/README.mdを参照。 - URL:
register_post_typeのrewrite.slugにより/daily-article/…形式(core_src/PostType/DailyArticlePostType.php)。 - 本文の生成:
DailyArticleTemplateContent.phpが post meta(kousatsu_date、halls、各ホールの*_pre/*_after)を読み、DailyArticleTemplateController::executeが HTML を返したあとdo_shortcode()を適用する。ビュー層の扱いは 各層と責務 の「ビュー層と Twig(補足)」を参照。 - REST(非同期ランキング等): API-001 日別記事 REST。
レンダリングの流れ(本書の範囲)
メインコンテンツの外側(P-T1 → 本文 → P-T2)は PUB-0。
用語・定数(抜粋)
| 用語 | 説明 |
|---|---|
DAILY_ARTICLE_TEMPLATE_PATH | 子テーマ上のラッパー PHP の相対パス(single-daily-article-template.php)。 |
DAILY_ARTICLE_TEMPLATE_BODY_PATH | ビルド済みテンプレート本体を指すパス。 |
kousatsu_date | 考察日。未設定時は P-0 でガード。 |
halls | 対象ホール。未設定時は P-0 でガード。 |
*_pre / *_after | ホール別の前半・後半考察用 post meta(P-9 / P-13)。 |
LinkDayData | 前日・翌日ナビ用データ(P-2)。 |
_wp_page_template | ページテンプレートの割当。旧パスが残る場合の扱いは docs/posttypes/DailyArticlePostType/README.md。 |
画面仕様
ブロック一覧
記事共通(ヘッダ〜月別・広告)
| 表示する項目 | データの出所と表示の要点 | 処理番号 |
|---|---|---|
| 考察日・ホール未設定時の案内 | kousatsu_date または halls が空のとき、ログインかつ編集権限があるユーザーにのみ表示。以降のブロックは出さない | P-0 |
| 記事タイトル(考察日の年月日表記) | 考察日を年月日表記に整形した見出しとして表示(DailyArticleTemplateExecutionService) | P-1 |
| 前日・翌日の日別記事へのナビ | DailyArticleTemplateDataService が組み立てた LinkDayData。前後日 URL の有無でリンクまたは非活性表示 | P-2 |
| 月別リンク(年指定のカレンダー) | 考察日から導いた year を [MonthlyLinkByYear] に渡して表示(SC-013) | P-3 |
| 誕生日機種ピックアップ | 考察日・対象ホールを [BirthDayMachinePickUp] に渡して表示(SC-014) | P-4 |
| ランダム広告 | [random_adsense_ad] の結果を表示(SC-003)。同一タグを複数箇所に配置 | P-5 |
ホール単位(ループ内)
| 表示する項目 | データの出所と表示の要点 | 処理番号 |
|---|---|---|
| ホール別ブロックの見出し | 対象ホールごとにホール名の見出しを表示(ホール一覧・表示名はコントローラ/データ側で組み立て) | P-6 |
| メール/キャプチャ画像ブロック | ホール・考察日を [MailImage] に渡して表示(SC-007) | P-7 |
| ホール内の前日・翌日(ホール文脈) | 当該考察日の前後日とホール名を [MoveDayHall] に渡して表示(SC-008) | P-8 |
| 前半考察「( ..)φメモメモ 示唆画像について…」 | 各ホールの *_pre meta を the_content 相当のフィルタで HTML 化したものを表示。未設定時は枠と「(まだだよ〜)」 | P-9 |
| 「〇〇の日」リスト(エスパス秋葉原のみ・条件付き) | ホールがエスパス秋葉原かつ espasu_what_day_texts があるときのみ、マスタ等由来の文言をリスト表示 | P-10 |
| 絵文字ブロック | DailyArticleEmojiRepository から取得したホール別テキストを表示。未設定時は「(まだだよ〜)」 | P-11 |
| 関連日・カレンダー等 | 考察日・ホールを [CustomCode_CreateDailyArticleRelationalDay] に渡して表示(SC-004) | P-12 |
| 後半考察「( ..)φメモメモ 結果について…」 | 各ホールの *_after meta を P-9 と同様の経路で HTML 化して表示 | P-13 |
| 日別記事結果(ランキング・末尾・ヒートマップ等の枠) | [CustomCode_CreateDailyArticleResult] の結果を表示(SC-001)。重い部分は API-001 の GET と連携 | P-14 |
| 機種データ(条件付き) | [kishudata] に日・ホール・機種名を渡して表示(SC-009)。コントローラが kishu を渡す場合のみ(通常のシングルでは多くは未表示) | P-15 |
処理連携仕様
アクション一覧
A-1 初期表示時に日別記事本文を生成する
DailyArticleTemplateContent.php が post meta を読み、必須値が揃う場合のみ DailyArticleTemplateController::execute の結果に do_shortcode() を適用して表示する。必須値不足時は P-0 の案内のみ表示し、以降の処理は行わない。
リクエスト
| requestParam | 本画面の値(どの部品から何を送るか) |
|---|---|
| post_id | WordPress の現在表示中投稿 ID(シングル表示コンテキストから取得) |
| post_meta | kousatsu_date、halls、*_pre、*_after(投稿メタから取得) |
レスポンス
| 項目 | 内容 |
|---|---|
| 成功時 | P-1〜P-15 の表示データを含む HTML 文字列を返す |
| 失敗時 | 必須値不足時は編集権限ユーザー向け案内(P-0)のみ表示 |
| 画面更新時の処理 | サーバーサイドレンダリングのため、リロード時に同処理を再実行する |
A-2 日別記事結果ブロックで API-001 を参照する
P-14([CustomCode_CreateDailyArticleResult])の重い処理は API-001 日別記事 REST を利用する。画面構成・取得/整形/表示の責務分離の正は SC-001 日別記事結果ショートコード(ワイヤーフレーム・ブロック一覧)を参照する(ショートコード名・属性は同書「外部インターフェース」)。
リクエスト
| requestParam | 本画面の値(どの部品から何を送るか) |
|---|---|
| hall | ホールループ内のホール名(P-14 のショートコード属性) |
| date | kousatsu_date 由来の日付(P-14 のショートコード属性) |
レスポンス
| 項目 | 内容 |
|---|---|
| 成功時 | ランキング・末尾・ヒートマップ等、P-14 表示に必要なデータを返す |
| 失敗時 | SC-001 側のフォールバック表示仕様に従う |
| 画面更新時の処理 | 対象ブロックのみ再描画(詳細は SC-001) |
ショートコード早見表
| タグ | 主な属性 | 設計書 | 処理番号 |
|---|---|---|---|
MonthlyLinkByYear | year | SC-013 | P-3 |
BirthDayMachinePickUp | year month day halls | SC-014 | P-4 |
random_adsense_ad | なし | SC-003 | P-5 |
MailImage | hall date | SC-007 | P-7 |
MoveDayHall | preday nextday name | SC-008 | P-8 |
CustomCode_CreateDailyArticleRelationalDay | date hall | SC-004 | P-12 |
CustomCode_CreateDailyArticleResult | hall date | SC-001(ワイヤーフレーム含む) | P-14 |
kishudata | day hall kishu | SC-009 | P-15 |
処理番号 → 主な実装の目安
| 処理番号 | 主な実装の目安 |
|---|---|
| P-0 | DailyArticleTemplateContent.php(先頭ガード) |
| P-1 | DailyArticleTemplateExecutionService(タイトル整形) |
| P-2 | DailyArticleTemplateDataService(LinkDayData) |
| P-3〜P-15 | テンプレートが出力する HTML 内のショートコード → do_shortcode、およびメタ/リポジトリ由来の表示(P-9〜P-11、P-13) |
外部インターフェース
画面 URL
| 項目 | 値 |
|---|---|
| URL | /daily-article/{post-name}(register_post_type の rewrite.slug に準拠) |
| 種別 | 公開画面 |
| 権限 | なし(公開投稿は誰でも閲覧可) |
関連インターフェース
| 種別 | 名称 | 用途 |
|---|---|---|
| REST API | API-001 日別記事 REST | P-14 の結果表示(非同期) |
| 画面 | SC-001 日別記事結果ショートコード(ワイヤーフレーム節) | P-14 の枠(取得/整形/表示) |
| Shortcode | SC-001 ほか本書「ショートコード早見表」記載分 | 各ブロック描画(引数) |
| Theme Frame | PUB-0 公開画面共通(Cocoon テーマ枠) | 記事上端/下端共通枠 |
関連ドキュメント
| 文書 | 内容 |
|---|---|
| 各層と責務(「ビュー層と Twig(補足)」節) | テンプレートエンジンと画面設計書の分担 |
| PUB-0 公開画面共通(Cocoon テーマ枠) | 記事上端/下端(P-T1・P-T2)の共通枠 |
| API-001 日別記事 REST | 非同期・REST パス(P-14 関連) |
docs/posttypes/DailyArticlePostType/README.md | 旧テンプレートパス・投稿タイプまわり |
| 各 SC-*(上表リンク) | ショートコード個別仕様 |
処理詳細
P-0
- 実装:
core_src/Template/daily_article_template/components/DailyArticleTemplateContent.php先頭。kousatsu_dateまたはhallsが空のとき、編集権限ユーザーにのみ「考察日時」「ホール選択」の設定を促すメッセージを出力し、以降のコントローラー処理は行わない。
P-1
- 実装:
DailyArticleTemplateExecutionServiceがpost_title用に考察日をyyyy年n月j日形式へ整形し、記事タイトル領域に見出しとして出力する。
P-2
- 実装:
DailyArticleTemplateDataServiceがキャッシュ済みデータからLinkDayDataを組み立て、前日・翌日ナビ領域で URL の有無に応じてリンクまたは非活性テキストを表示する。
P-3
- ショートコード:
[MonthlyLinkByYear year=…](SC-013)。 - 備考: 考察日から導いた
yearを属性に渡す。
P-4
- ショートコード:
[BirthDayMachinePickUp year=… month=… day=… halls="…"](SC-014)。 - 備考:
hallsは日別記事対象ホールの英字スラッグをカンマ区切りで渡す(make_artist_halls_csv)。
P-5
- ショートコード:
[random_adsense_ad](SC-003)。 - 備考: 月別リンク直後・各ホールブロック内など、同一タグを複数回配置。
P-6
- 実装: 対象ホールのループ内で、ホール表示名に基づく見出しを出力する。
P-7
- ショートコード:
[MailImage hall="…" date="YYYYMMDD"](SC-007)。
P-8
- ショートコード:
[MoveDayHall preday="…" nextday="…" name="…"](SC-008)。 - 備考:
preday/nextdayは当該考察日の前後日のYYYYMMDD。
P-9
- 実装: 各ホールの
*_prepost meta をapply_filters( 'the_content', … )経由でレンダリングした結果をconsideration_pre[hall_name]に格納し表示する。データが無い場合も枠と「(まだだよ〜)」を表示する。
P-10
- 実装: ホール名が「エスパス秋葉原」かつ
espasu_what_day_textsが非空のときのみ、「〇〇の日」相当のブロックを表示する。文言はメタ・マスタ・紐付けテーブル由来(詳細はDailyArticleWhatDayRepository等の実装を参照)。
P-11
- 実装:
DailyArticleEmojiRepositoryで取得したホール別テキストを表示する。未設定時は「(まだだよ〜)」。
P-12
- ショートコード:
[CustomCode_CreateDailyArticleRelationalDay date="Y-m-d" hall="…"](SC-004)。
P-13
- 実装: P-9 と同様に、各ホールの
*_afterを後半見出し「結果について…」の下に表示する。
P-14
- ショートコード:
[CustomCode_CreateDailyArticleResult hall="…" date="Y-m-d"](SC-001)。 - 備考: 非同期表示・枠の状態差・層の責務は SC-001 日別記事結果ショートコード。REST ルート表は API一覧(API-001 節)(
API-001-*)。
P-15
- ショートコード:
[kishudata day="…" hall="…" kishu="…"](SC-009)。 - 備考: コントローラが
kishuを属性に含める場合のみ表示する。通常のシングルではDailyArticleTemplateContent.phpがkishuを含めないため 多くの場合は未表示。別経路でkishuを渡したコントローラー実行時のみ有効。
変更履歴(設計書)
「コード側の対応」には PR 番号・issue・コミットのいずれかを記載する(該当が無いときは —)。
| 日付(JST) | 変更内容 | コード側の対応(PR 等) |
|---|---|---|
| 2026-04-26 | P-14 および A-2 の参照先に日別記事結果ブロック設計を追加(Issue #1914、SC-001(IF/ワイヤー)と PUB-003 系(挙動詳細)へ再整理) | PR #1916 |
| 2026-04-26 | 共通フォーマット(概要/ワイヤーフレーム/画面仕様/処理連携仕様/外部インターフェース)に合わせて再編し、テンプレート管理パス説明を修正 | — |
| 2026-04-22 | 初版作成(要点・用語・レンダリング図・表の分割と種別列・ショートコード早見・処理番号インデックス・関連ドキュメント) | — |
| 2026-04-22 | テーマ枠(P-T1/T2)を PUB-0 に切り出し、本書は P-0〜P-15 に集約 | — |
| 2026-04-22 | Twig 等の実装詳細をアーキテクチャ側へ移し、表示項目はデータの出所ベースに整理 | — |