Skip to content

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_typerewrite.slug により /daily-article/… 形式(core_src/PostType/DailyArticlePostType.php)。
  • 本文の生成: DailyArticleTemplateContent.php が post meta(kousatsu_datehalls、各ホールの *_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
記事タイトル(考察日の年月日表記)考察日を年月日表記に整形した見出しとして表示(DailyArticleTemplateExecutionServiceP-1
前日・翌日の日別記事へのナビDailyArticleTemplateDataService が組み立てた LinkDayData。前後日 URL の有無でリンクまたは非活性表示P-2
月別リンク(年指定のカレンダー)考察日から導いた year[MonthlyLinkByYear] に渡して表示(SC-013P-3
誕生日機種ピックアップ考察日・対象ホールを [BirthDayMachinePickUp] に渡して表示(SC-014P-4
ランダム広告[random_adsense_ad] の結果を表示(SC-003)。同一タグを複数箇所に配置P-5

ホール単位(ループ内)

表示する項目データの出所と表示の要点処理番号
ホール別ブロックの見出し対象ホールごとにホール名の見出しを表示(ホール一覧・表示名はコントローラ/データ側で組み立て)P-6
メール/キャプチャ画像ブロックホール・考察日を [MailImage] に渡して表示(SC-007P-7
ホール内の前日・翌日(ホール文脈)当該考察日の前後日とホール名を [MoveDayHall] に渡して表示(SC-008P-8
前半考察「( ..)φメモメモ 示唆画像について…」各ホールの *_pre meta を the_content 相当のフィルタで HTML 化したものを表示。未設定時は枠と「(まだだよ〜)」P-9
「〇〇の日」リスト(エスパス秋葉原のみ・条件付き)ホールがエスパス秋葉原かつ espasu_what_day_texts があるときのみ、マスタ等由来の文言をリスト表示P-10
絵文字ブロックDailyArticleEmojiRepository から取得したホール別テキストを表示。未設定時は「(まだだよ〜)」P-11
関連日・カレンダー等考察日・ホールを [CustomCode_CreateDailyArticleRelationalDay] に渡して表示(SC-004P-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_idWordPress の現在表示中投稿 ID(シングル表示コンテキストから取得)
post_metakousatsu_datehalls*_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 のショートコード属性)
datekousatsu_date 由来の日付(P-14 のショートコード属性)

レスポンス

項目内容
成功時ランキング・末尾・ヒートマップ等、P-14 表示に必要なデータを返す
失敗時SC-001 側のフォールバック表示仕様に従う
画面更新時の処理対象ブロックのみ再描画(詳細は SC-001

ショートコード早見表

タグ主な属性設計書処理番号
MonthlyLinkByYearyearSC-013P-3
BirthDayMachinePickUpyear month day hallsSC-014P-4
random_adsense_adなしSC-003P-5
MailImagehall dateSC-007P-7
MoveDayHallpreday nextday nameSC-008P-8
CustomCode_CreateDailyArticleRelationalDaydate hallSC-004P-12
CustomCode_CreateDailyArticleResulthall dateSC-001(ワイヤーフレーム含む)P-14
kishudataday hall kishuSC-009P-15

処理番号 → 主な実装の目安

処理番号主な実装の目安
P-0DailyArticleTemplateContent.php(先頭ガード)
P-1DailyArticleTemplateExecutionService(タイトル整形)
P-2DailyArticleTemplateDataServiceLinkDayData
P-3〜P-15テンプレートが出力する HTML 内のショートコード → do_shortcode、およびメタ/リポジトリ由来の表示(P-9〜P-11、P-13)

外部インターフェース

画面 URL

項目
URL/daily-article/{post-name}register_post_typerewrite.slug に準拠)
種別公開画面
権限なし(公開投稿は誰でも閲覧可)

関連インターフェース

種別名称用途
REST APIAPI-001 日別記事 RESTP-14 の結果表示(非同期)
画面SC-001 日別記事結果ショートコード(ワイヤーフレーム節)P-14 の枠(取得/整形/表示)
ShortcodeSC-001 ほか本書「ショートコード早見表」記載分各ブロック描画(引数)
Theme FramePUB-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

  • 実装: DailyArticleTemplateExecutionServicepost_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

  • 実装: 各ホールの *_pre post 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

P-15

  • ショートコード: [kishudata day="…" hall="…" kishu="…"]SC-009)。
  • 備考: コントローラが kishu を属性に含める場合のみ表示する。通常のシングルでは DailyArticleTemplateContent.phpkishu を含めないため 多くの場合は未表示。別経路で kishu を渡したコントローラー実行時のみ有効。

変更履歴(設計書)

「コード側の対応」には PR 番号・issue・コミットのいずれかを記載する(該当が無いときは )。

日付(JST)変更内容コード側の対応(PR 等)
2026-04-26P-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-22Twig 等の実装詳細をアーキテクチャ側へ移し、表示項目はデータの出所ベースに整理