Appearance
ADM-004 〇〇の日マスタ管理画面
概要
db_what_day_masterテーブルの一覧表示・新規追加・編集・削除・is_show一括切替を行う管理画面。- WordPress 設定サブメニュー(
add_options_page)として登録。CRUD 操作はフォーム POST、is_showトグルとシードは admin-ajax 経由で処理する。 - 「ざつねた」から〇〇の日データをシードする機能を持ち、AJAX ボタン 1 つで外部サービスから一括取得できる。
- 一覧はキーワード・月・日でフィルタリング可能で、ページネーション(デフォルト 50 件)とソートに対応する。
外部インターフェース
管理画面 URL
| 項目 | 値 |
|---|---|
| URL | /wp-admin/options-general.php?page=what-day-master-admin |
| メニュー名 | 〇〇の日マスタ |
| 権限 | manage_options |
フォーム POST(同期 CRUD)
すべて POST options-general.php?page=what-day-master-admin へ送信し、処理後にリダイレクトする。
what_day_master_action 値 | 処理 |
|---|---|
add | 新規エントリ追加 |
update | 既存エントリ更新 |
delete | 指定 ID のエントリ削除 |
update_is_show | 指定 ID の is_show 更新(フォーム版) |
Nonce フィールド: what_day_master_nonce(検証アクション: what_day_master_admin)
主な POST パラメータ
| フィールド | 操作 | 型・制約 | 説明 |
|---|---|---|---|
what_day_master_id | update/delete | 正整数 | 操作対象エントリ ID |
what_day_master_name | add/update | 文字列(max 255文字) | 名称(必須) |
what_day_master_is_show | add/update/is_show | "1" または未送信 | 投稿での表示フラグ |
what_day_master_mmdd | add/update | 整数 101〜1231 または空 | 月日(省略可) |
what_day_master_yyyymmdd | add/update | 整数 8桁 または空 | 年月日(省略可) |
admin-ajax(HTTP 契約)
すべて POST /wp-admin/admin-ajax.php、manage_options 権限+nonce 必須。
action 値 | 説明 |
|---|---|
what_day_master_update_is_show | 指定 ID の is_show を AJAX で切替 |
what_day_master_seed_from_zatsuneta | 「ざつねた」から一括シード |
POST パラメータ・レスポンス data の契約は admin-ajax/endpoints/ 配下の ADM-004-1(is_show 切替) および ADM-004-2(ざつねたシード) を参照。
画面 ID
使用画面 ID: ADM-004(ADM-一覧.md 参照)
データ
テーブル: db_what_day_master
| カラム | 型 | 説明 |
|---|---|---|
id | int PK | 自動採番 |
name | varchar(255) | 〇〇の日名称 |
is_show | tinyint(1) | 投稿での表示フラグ(1=表示) |
mmdd | int null | 月日(例: 101 = 1月1日) |
yyyymmdd | int null | 年月日(例: 20260101 = 2026年1月1日) |
created_at | datetime | 作成日時 |
updated_at | datetime | 更新日時 |
一覧フィルタ・ソート
| GET パラメータ | 説明 | デフォルト |
|---|---|---|
wdm_search | 名称部分一致 | 空(全件) |
wdm_month | 月フィルタ(1〜12、0=指定なし) | 0 |
wdm_day | 日フィルタ(1〜31、0=指定なし) | 0 |
wdm_orderby | ソートキー(id/name/created_at/updated_at) | id |
wdm_order | ソート方向(asc/desc) | asc |
wdm_paged | ページ番号(1以上) | 1 |
wdm_per_page | 表示件数(20/50/100/200) | 50 |
エラー
| 条件 | ユーザー向け挙動 | メッセージ / ログ |
|---|---|---|
| nonce 不正 | リダイレクト+エラーメッセージ表示 | Messages::AUTH_FAILED |
manage_options 権限なし | wp_die() または JSON エラー | Messages::PERMISSION_DENIED |
| 名称が空 | リダイレクト+エラーメッセージ表示 | Messages::WHAT_DAY_MASTER_NAME_REQUIRED |
| 名称が 255 文字超 | リダイレクト+エラーメッセージ表示 | Messages::WHAT_DAY_MASTER_NAME_MAX |
mmdd が範囲外または不正日付 | リダイレクト+エラーメッセージ表示 | Messages::WHAT_DAY_MASTER_MMDD_INVALID |
yyyymmdd が 8 桁外または不正日付 | リダイレクト+エラーメッセージ表示 | Messages::WHAT_DAY_MASTER_YYYYMMDD_INVALID |
| ID が 0 以下(update/delete) | リダイレクト+エラーメッセージ表示 | Messages::REST_INVALID_ID_MESSAGE |
| 追加時に重複エントリ | リダイレクト+エラーメッセージ表示 | Messages::WHAT_DAY_MASTER_ADD_DUPLICATE |
シード実行時に \Throwable | JSON エラー返却 | error_log([WhatDayMasterAdminPage] 先頭) |
| 月・日両方指定で不正日付(例: 2/31) | 日パラメータをクリアしてリダイレクト | Messages::WHAT_DAY_MASTER_SEARCH_DATE_INVALID |