-
各プラグインリポジトリ直下の
docs/フォルダー等にコピーして利用することを想定する。 -
コピー後、1行目を
# <plugin-slug> - 画面、API、データに変更すること。 -
ファイル名の一例:
docs/SPEC_UI_API_DATA.md -
小〜中規模プラグイン向けに、「画面仕様、API 仕様、データ仕様」を1ファイルにまとめておき、大きくなったら分割版を使う。
分割版 (同一 docs/ 内):
SPEC_UI_AND_FLOWS.md— 管理画面、フロント UI と画面遷移SPEC_API_AND_INTEGRATION.md— REST API および外部サービス連携SPEC_DATA_DICTIONARY.md— データ、設定値、ストレージ定義
React / REST / Settings は、アダプタです。判断は、純関数です。永続化と wp_remote_* は、アダプタに閉じます。詳細な設計方針は、docs/SPECS.md の「2. 設計方針」、置き場所は、SPEC_ARCHITECTURE.md です。
- 設定ページは
add_options_pageまたはadd_menu_pageを使う (PHP アダプタ)。 - 読み書きは
register_setting/get_option/update_optionをアダプタで行う。 sanitize_callback、Nonce、capability は必須。- バリデーションと判断は純関数に出す。コンポーネントに混ぜない。
- 余白・テキストサイズは
remを基本とする。詳細はSPECS.mdのスタイル規約。
- 画面 ID:
- タイトル:
- URL / メニュー階層:
- React エントリーポイント:
- 権限 (capability):
| 画面 ID | フィールド名 | ラベル | 型 | 必須 | バリデーション | 保存先 |
|---|---|---|---|---|---|---|
- フロー名:
- 手順1:
- 手順2:
| ブロック名 | 主な属性 | フロント表示 | 正規化の純関数 |
|---|---|---|---|
block.jsonを正とする。登録は PHP アダプタ。翻訳は@wordpress/i18n。
- パスは
/plugin-slug/v1/...を基本とする。 - REST クラスはアダプタ。判断は
includes/domain/に。 permission_callbackと Nonce は必須。- エラー系は HTTP ステータスとエラーコードを書く。
WP_Errorを握りつぶさない。
| 名前 | パス | メソッド | 概要 | ドメイン関数 |
|---|---|---|---|---|
- パス:
- 認証・認可:
- リクエスト / レスポンス (正常系・エラー系):
- 永続化 (option / meta / テーブル / 外部 HTTP):
| サービス名 | 用途 | 認証 | アダプタ | ドメイン関数 |
|---|---|---|---|---|
- 呼び出しは
wp_remote_*。キーはアダプタから注入する。
- 永続化はアダプタ。ドメインはイミュータブルな値だけを受け取る。リポジトリインターフェースは量産しない。
| option_name | 説明 | 型 | デフォルト値 | アダプタ | ドメインの値の形 |
|---|---|---|---|---|---|
| meta_key | 対象 | 説明 | 型 | デフォルト値 | アダプタ |
|---|---|---|---|---|---|
- テーブル名:
- カラム / インデックス:
- 作成・更新するアダプタ:
- 本ファイルを1本渡して、画面 ID またはエンドポイント単位で実装を依頼する。
- 前提に「REST / 設定画面はアダプタ、判断は純関数、巨大サービスは使わない」を含める。
- 本ファイルが長くなったら、分割版3ファイルに移し、本ファイルは目次だけ残す。