Skip to content

有料記事 固定セクション ↔ ショートコード対応表

概要

  • 有料記事(CPT paid_article)の 固定セクション 8 本 および オプションセクション について、既存ショートコード・データ機能との対応方針を確定する。
  • 正本のセクション定義は CPT-002 有料記事テンプレート構成設計。本書は #2385 の成果物として、実装 Issue(#2388 等)への引き継ぎ資料とする。
  • Issue #2381 メモの「新台導入初日のデータ比較」は、CPT-002 の #2 初週のデータ比較 に統合する(導入初日を初週の先頭日として SC-009 で表示する)。

関連 Issue

Issue内容
#2381親 Issue(有料記事の体制を整える)
#2383CPT-002 テンプレート構成設計
#2385本書(固定セクションと既存機能の対応整理)
#2388固定セクションテンプレート実装
#2386画像スナップショット方針
#2391画像スナップショット機能の実装(方針は #2386)

ワイヤーフレーム参照

有料記事テンプレート全体の React ワイヤーフレームは 未作成(#2388 で複合ワイヤーフレーム要否を判断)。各セクションの UI は連携先ショートコード/公開画面の既存ワイヤーフレームを参照する。

固定 #見出し主な連携 SCワイヤーフレームプレビュー
1冒頭挨拶なし
2初週のデータ比較SC-009なし(非同期カード)SC-009
3来月の導入台なし
4月差枚数hall_samai_graphなし
5機種差枚数ランキングSC-017ありPUB-005(表レイアウト参考)SC-017 を参照
6増台・減台の結果SC-015SC-015 専用 WF なし。PUB-001 P-16PUB-001 説明を参照
7新台出玉推移snapshotSC-016 グラフ部分(PUB-005 B-4)PUB-005 を参照
8ホール差枚数ランキングSC-019なしSC-019 を参照

オプションセクション(固定 8 本以外)

種別meta キー主な連携 SC備考
特定機種結果(オプション)paid_article_section_smr_{instance_id}SC-009 + SC-010 + snapshotCPT-002「オプションセクション仕様」参照。sections_order で任意位置
可変セクションpaid_article_section_vs_{instance_id}手動 HTML。ショートコード埋め込み可
bash
npm run docs:dev
# http://localhost:5173 → 公開画面 > PUB-005(PeriodKishuSamaiRankingWireframeReactHost)

固定セクション ↔ ショートコード対応表

基本メタ(固定セクション外)

項目meta_key連携先対応方針
号数paid_article_issue_number手動
対象年月paid_article_target_month手動(YYYY-MM)。月次期間の自動算出の基準(下記「月次期間算出」)

固定セクション 8 本

#見出しmeta_key推奨 SC(タグ名)属性テンプレート(コピペ用)入力方式対応方針
1冒頭挨拶paid_article_intro手動手動
2初週のデータ比較paid_article_new_machine_first_weekSC-009 kishudata + SC-010 period_samai_summary初日: [kishudata day="{intro_day}" hall="{hall}" kishu_id="{kishu_a}'_'{kishu_b}"] / 初週サマリー: [period_samai_summary period_start="{week_start}" period_end="{week_end}" hall="{hall}" kishu="{kishu}"] × 機種数手動 + 自動既存流用
3来月の導入台と期待感paid_article_next_machine_commentdb_new_machine_info(対象月翌月) + 手動コメント新台情報テーブルから機種名・導入日を自動表示(machine_name で重複排除、最早導入日を採用)。期待感は html フィールドで任意入力手動 + 自動手動 + 自動
4月差枚数paid_article_month_diffhall_samai_graphホールごと: [hall_samai_graph halls="{hall}" period_start="{3m_start}" period_end="{3m_end}" mode="monthly"](直近3暦月・日次累計を月別折れ線で重ね表示)手動 + 自動新規 SC
5機種差枚数ランキングpaid_article_rankingSC-017 kishu_samai_3months_ranking[kishu_samai_3months_ranking hall="{hall}" target_month="{target_month}"]手動 + 自動新規 SC(#5 専用)
6増台・減台の結果paid_article_machine_countSC-015 + SC-010一覧: [kishu_count_delta_list period_start="{month_start}" period_end="{month_end}" hall="{hall}"] → 抽出機種ごとに SC-010(CPT-002 #6 節)手動 + 自動既存流用
7新台出玉推移paid_article_new_machine_trendperiod_kishu_samai_ranking_snapshot[period_kishu_samai_ranking_snapshot hall="{hall}" period_start="{trend_start}" period_end="{month_end}" kishu="{kishu_a},{kishu_b}" display="graph"]手動 + 自動既存流用
8ホール差枚数ランキングpaid_article_hall_samai_rankingSC-019 hall_samai_ranking[hall_samai_ranking halls="{hall_a},{hall_b}" target_month="{target_month}"]手動 + 自動新規 SC(#8 専用)

オプションセクション(特定機種結果)

種別meta キー推奨 SC(タグ名)対応方針
特定機種結果paid_article_section_smr_{instance_id}SC-009 + SC-010 + period_kishu_samai_ranking_snapshot旧固定 #7 をオプション化(#2553)。公開表題は section_title(必須)

ショートコード補足(設計書未整備分)

タグ名概要設計書有料記事での位置づけ
period_kishu_samai_ranking_snapshotフォームなしの静的ランキング表・折れ線グラフ。kishu はカンマ区切り必須。display: both / ranking / graph未整備(実装あり)固定 #7 の埋め込み向き。#5 は SC-017 を使用

月次期間算出

paid_article_target_month(例: 2026-02)から各ショートコード属性へ渡す日付を算出するルール。

用途算出ルール
当月 month_starttarget_month の 1 日(YYYYMMDD、例: 20260201
当月 month_endtarget_month の末日(例: 20260228
直近 3 か月(#4)target_month を含む連続 3 暦月。#4 は期間全体を period_start / period_end に指定
初週(#2)JSON の intro_day(導入初日)を起点に 7 日間、または week_start / week_end を明示指定
特定機種結果(オプション)intro_day の暦月から 2 か月経過した月に該当する機種を対象(下記ギャップ参照)
出玉推移(固定 #7)導入日〜month_end、または JSON の period_start / period_end を明示指定

日付形式はショートコードごとに YYYYMMDD または YYYY-MM-DD を受け付ける。テンプレート生成時(#2388)は Converter 層で統一する。

REST API / WordPress MCP での JSON 固定セクション

固定セクション(paid_article_* の JSON meta)を REST API または WordPress MCP 経由で更新する場合のフィールド仕様。

フィールド値の形式備考
hallsstring[]HallEnum スラッグ: island, espasu, bigapple, uno日本語ホール名(例: アイランド秋葉原)はサニタイズ時に 無視 される
kishu_listint[]機種マスタ ID(正の整数)管理画面のチェックボックス選択と同じ。機種名文字列は受け付けない
enabledboolセクション表示フラグ
commentstringHTML 可#2 初週以外の JSON セクション向け

#2 初週のデータ比較(paid_article_new_machine_first_week)専用

フィールド備考
comment_beforestring前半考察。データ連携・グラフのに表示
comment_afterstring後半考察。データ連携・グラフのに表示

例(月差枚数セクション):

json
{
  "enabled": true,
  "halls": ["island", "espasu"],
  "kishu_list": [101, 202],
  "comment": "<p>考察</p>"
}

月次更新用ショートコード記述例

プレースホルダ: {hall} = アイランド秋葉原、target_month = 2026-02(month_start = 20260201、month_end = 20260228)。

#4 月差枚数(ホール2件・target_month=2026-02)

[hall_samai_graph halls="アイランド秋葉原" period_start="20251201" period_end="20260228" mode="monthly"]
[hall_samai_graph halls="エスパス秋葉原" period_start="20251201" period_end="20260228" mode="monthly"]

#4 月差枚数(旧 SC-010 例・参考)

[period_samai_summary period_start="20260201" period_end="20260228" hall="アイランド秋葉原" kishu="機種A"]
[period_samai_summary period_start="20260201" period_end="20260228" hall="アイランド秋葉原" kishu="機種B"]

#5 機種差枚数ランキング(当月・ホール全体・3ヶ月比較)

[kishu_samai_3months_ranking hall="アイランド秋葉原" target_month="2026-02"]

#6 増台・減台の結果

[kishu_count_delta_list period_start="20260201" period_end="20260228" hall="アイランド秋葉原,エスパス秋葉原" layout="merged"]

SC-015 出力から機種を抽出したあと、各ホール・各機種に対し(変化日を result_period_start とする):

[period_samai_summary period_start="20260210" period_end="20260228" hall="アイランド秋葉原" kishu="変化機種名"]

#2 初週のデータ比較(導入初日 + 初週サマリー)

表示順: comment_before → ショートコード群 → comment_after

[kishudata day="20260201" hall="アイランド秋葉原" kishu_id="機種A'_'機種B"]
[period_samai_summary period_start="20260201" period_end="20260207" hall="アイランド秋葉原" kishu="機種A"]
[period_samai_summary period_start="20260201" period_end="20260207" hall="アイランド秋葉原" kishu="機種B"]

JSON 例:

json
{
  "enabled": true,
  "halls": ["island"],
  "kishu_list": [101],
  "comment_before": "<p>導入前の期待</p>",
  "comment_after": "<p>初週の総括</p>",
  "intro_day": "20260201",
  "week_start": "20260201",
  "week_end": "20260207"
}

#7 新台出玉推移(グラフのみ)

[period_kishu_samai_ranking_snapshot hall="アイランド秋葉原" period_start="20260201" period_end="20260228" kishu="機種A,機種B" display="graph"]

#8 ホール差枚数ランキング(対象月・ホール2件例)

[hall_samai_ranking halls="アイランド秋葉原,エスパス秋葉原" target_month="2026-06"]

関連制約と対応方針

IDセクション制約対応方針
G-1#5SC-017 の静的テーブルを使用するSC-016 埋め込み向け簡易モードは使わない
G-2固定 #73 期間横並び・「上り調子」トレンド UI が存在しないsnapshot display="graph" + 手動考察 or 手動画像
G-4特定機種結果(オプション)導入日から 2 か月経過機種の自動抽出ロジックなしSC-002 索引 + 運用マニュアルで手動選定
G-5特定機種結果(オプション)該当機種 0 件の月はセクション非表示(CPT-002 仕様)enabled: false または kishu_list: [] でテンプレート側がスキップ
G-6#6SC-015 → SC-010 連鎖はテンプレート層のロジックCPT-002 #6 節どおり。SC 自体の拡張は不要
G-7#2初日横並び・初週日次の並べ方はテンプレート設計依存intro_day + kishu_list を JSON に追加。初日は SC-009 複数機種、週次は SC-010
G-8全体period_kishu_samai_ranking_snapshot の契約本書でタグ・属性・表示モード・エラー契約を定義する

パフォーマンス・キャッシュ方針

観点方針
更新頻度月 1 回。公開後は過去号を恒久表示するため、公開時点の HTML を正 とする
SC-009 非同期初回 HTML はプレースホルダ + API-001-14。有料記事 1 ページに複数 kishudata が並ぶとリクエスト数が増える。固定 #2・オプション特定機種結果は機種数を絞る運用を推奨
SC-016 / snapshotChart.js + REST(API-001-15)。固定 #5・固定 #7 が同一ページに複数あると JS/CSS は共有されるが API 呼び出しはブロックごとに発生
ページキャッシュ有料記事単体は更新頻度が低いため、編集者向けプレビューはフルページキャッシュを許容。一般訪問者は note 案内ページ(または 404)のみのため漏洩リスクは低い。Phase 2(#2390)導入後は未購読者向け表示と整合を取る
Object Cache既存ショートコードの DB クエリキャッシュに依存。有料記事専用キャッシュ層は初版では設けない
管理画面プレビュー編集者は edit_post 権限で非同期 API にアクセス可能(SC-009 既存仕様)

スナップショット優先度(#2386 / #2391)

デグレやショートコード仕様変更時に、画像スナップショットへ切り替える優先度。詳細運用は 画像スナップショット方針

優先度セクション理由
固定 #5, 固定 #7Chart.js・REST 依存。UI 変更の影響が大きい
固定 #4, 固定 #6, 固定 #8数値サマリー・表形式。仕様変更時に過去号の数値整合が課題
固定 #2, オプション特定機種結果日次カード中心。再取得で復旧可能だが API 負荷は要注意
対象外#1, #3手動 HTML。スナップショット不要(本文そのものが正本)

関連 Issue

Issue内容
#2388PaidArticleTemplate ショートコード動的生成
#2547セクション表示順とドラッグ UI
#2553特定機種結果(オプション)の機種選択・表示
#2386画像スナップショット方針