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)。
show_kishu_count_delta廃止済み(Issue #2251)。以前は台数変化表示の ON/OFF 用 post meta。
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 provider="a8"] の結果を表示(SC-003)。月別リンク直後・MoveDayHall 直後は常時、前半考察直後・ホール末尾は該当考察がある場合のみ配置P-5

ホール単位(ループ内)

表示する項目データの出所と表示の要点処理番号
ホール別ブロックの見出し対象ホールごとにホール名の見出しを表示(ホール一覧・表示名はコントローラ/データ側で組み立て)P-6
メール/キャプチャ画像ブロックホール・考察日を [MailImage] に渡して表示(SC-007P-7
ホール内の前日・翌日(ホール文脈)当該考察日の前後日とホール名を [MoveDayHall] に渡して表示(SC-008P-8
前半考察「( ..)φメモメモ 示唆画像について…」各ホールの *_pre meta を the_content 相当のフィルタで HTML 化したものを表示。未設定時は枠と「(まだだよ〜)」P-9
最近の台入れ替え考察日を period_end、考察日 − 6 日を period_start として [kishu_count_delta_list]常時出力(SC-015)。見出し「最近の台入れ替え」。テーブル列は日付・機種名・前日比(入れ替え日・機種・増減台数に相当)。0 件時は SC-015 の空状態メッセージ。配置は前半考察(P-9)の後、〇〇の日(P-10)の前P-16
「〇〇の日」リスト(エスパス秋葉原のみ・条件付き)ホールがエスパス秋葉原かつ espasu_what_day_texts があるときのみ、マスタ等由来の文言をリスト表示P-10
関連日・カレンダー等考察日・ホールを [CustomCode_CreateDailyArticleRelationalDay] に渡して表示(SC-004P-12
最近の導入台考察日・ホールを [recent_new_machine_list] に渡して表示(SC-018)。P-16 と同じ 7 日間で前日比が + の機種を一覧(機種ごとに最新日付 1 行)。見出し「最近導入、増台した台の状況は?」。0 件時はセクション非表示。配置は関連日(P-12)の直後P-17
後半考察「( ..)φメモメモ 結果について…」各ホールの *_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-17 の表示データを含む 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_adprovider(日別記事では a8SC-003P-5
MailImagehall dateSC-007P-7
MoveDayHallpreday nextday nameSC-008P-8
CustomCode_CreateDailyArticleRelationalDaydate hallSC-004P-12
kishu_count_delta_listperiod_start period_end hallSC-015P-16
recent_new_machine_listconsideration_date hall heading_idSC-018P-17
CustomCode_CreateDailyArticleResulthall dateSC-001(ワイヤーフレーム含む)P-14
kishudataday hall kishuSC-009P-15

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

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

外部インターフェース

画面 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 provider="a8"]SC-003)。
  • 備考: 月別リンク直後・MoveDayHall 直後は常時配置。前半考察直後・ホール末尾は、それぞれ consideration_pre / consideration_after があるときのみ配置(daily_article_template.twig)。同一リクエスト内の A8 / AdSense 重複防止は adsense-optimization.md を参照。

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-12

  • ショートコード: [CustomCode_CreateDailyArticleRelationalDay date="Y-m-d" hall="…"]SC-004)。

P-13

  • 実装: P-9 と同様に、各ホールの *_after を後半見出し「結果について…」の下に表示する。

P-14

P-15

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

P-16

  • ショートコード: [kishu_count_delta_list period_start="…" period_end="…" hall="…"]SC-015)。
  • 備考: 各ホールブロック内で常時出力する(show_kishu_count_delta post meta による ON/OFF は廃止)。period_end は考察日(date_y_m_d)、period_start は考察日 − 6 日(直近 7 日間)。セクション見出しは「最近の台入れ替え」。SC-015 のテーブル出力(日付・機種名・前日比)をそのまま利用する。0 件時は KishuCountDeltaListMessages::NO_DATA。配置は前半考察(P-9)の後、〇〇の日(P-10)の前(daily_article_template.twig)。

P-17

  • ショートコード: [recent_new_machine_list consideration_date="…" hall="…" heading_id="recent-new-machine-list-heading-{n}"]SC-018)。
  • 備考: P-16 と同じ 7 日間DailyArticleKishuCountDeltaPeriod::LOOKBACK_DAYS_BEFORE_CONSIDERATION_DATE)の台数前日比から + のみを、機種単位で最新 period_key 1 行に集約して一覧表示。増台日〜考察日の累計・平均差枚を各行に表示。見出しは「最近導入、増台した台の状況は?」。heading_id はホールループの loop.index でユニーク化(P-16 と同パターン)。0 件時はセクション非表示。配置は関連日(P-12)の直後(daily_article_template.twig)。期間分析リンクは PUB-005 へ遷移(+ 検出日〜考察日を事前指定)。

変更履歴(設計書)

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

日付(JST)変更内容コード側の対応(PR 等)
2026-06-30P-17 の表示条件を P-16 と同じ 7 日間の台数前日比 + のみに変更(機種ごと最新日付 1 行)PR #2574
2026-06-30P-17「最近導入、増台した台の状況は?」を追加。SC-018 を考察日から遡って 60 日以内の導入機種一覧として定義PR #2572
2026-06-05P-16 の配置を P-9 の後・P-10 の前へ変更。P-11 絵文字ブロックを設計から削除
2026-06-05P-16「最近の台入れ替え」を追加。SC-015 を直近 7 日間で常時表示。show_kishu_count_delta post meta・編集画面チェックボックスは廃止(Issue #2251)PR #2256
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 等の実装詳細をアーキテクチャ側へ移し、表示項目はデータの出所ベースに整理