Skip to content

ADM-030 作品名マスタ管理画面 ​

概要 ​

  • db_title_master の一覧・新規登録・名称変更・統合(merge)・無効化を行う専用管理画面。
  • WordPress 設定サブメニューとして登録。操作はすべて 同一 URL への POST(リダイレクト+クエリ通知)。admin-ajax は使用しない。
  • rename / merge / 無効化は確認ダイアログ必須。merge 実行前に影響件数プレビュー(ドライラン)を表示できる。
  • 版権・作品タイトルの正本マスタ。誕生日系(db_birthday / db_birthday_kishu)が title_id で参照する。他機能からの参照も可能な設計とする。

外部インターフェース ​

管理画面 URL ​

項目値
URL/wp-admin/options-general.php?page=title-master-admin
メニュー名作品名マスタ
権限manage_options

フォーム POST(同期 CRUD / merge) ​

POST options-general.php?page=title-master-admin。

title_master_action 値処理
add新規登録(upsert_by_names、重複は uk_name で拒否)
rename名称変更(update_name、確認ダイアログ必須)
deactivate無効化(is_active = 0、確認ダイアログ必須)
merge_preview統合の影響件数プレビュー(ドライラン)
merge統合実行(誕生日系 2 テーブルの title_id 差し替え+旧行 DELETE、確認必須)

Nonce フィールド: title_master_nonce(検証アクション: title_master_admin)

主な POST パラメータ ​

フィールド操作説明
title_master_idrename / deactivate対象 ID
title_master_nameadd / rename作品名(必須、最大 255 文字)
title_master_source_idmerge_preview / merge統合元 ID
title_master_target_idmerge_preview / merge統合先 ID

リダイレクト後クエリ(通知) ​

クエリ内容
tm_success1 / 0
tm_msg表示文言(URL エンコード)

編集・プレビュー用 GET ​

GET パラメータ説明
tm_edit名称変更対象 ID
tm_search作品名部分一致検索
tm_merge_preview1 のときプレビュー結果表示
tm_source_idプレビュー対象の統合元 ID
tm_target_idプレビュー対象の統合先 ID

一覧 URL のエンコード ​

ソートリンク・編集リンクとリダイレクト先はいずれも build_list_page_url() が組み立てる。add_query_arg() は値をエンコードしないため、AdminQueryUrl が渡された生値を 1 回だけ URL エンコードする(通知の tm_msg も同じ扱い)。

データ ​

テーブル: db_title_master ​

カラム説明
id主キー
name作品名(uk_name)
is_active有効フラグ
created_at / updated_atタイムスタンプ

一覧の参照件数サマリ ​

列名参照先
birthdaydb_birthday.title_id 参照件数
birthday_kishudb_birthday_kishu.title_id

merge 時の業務テーブル更新 ​

TitleIdBackfillRepository により次の 2 テーブルを更新する。

  • db_birthday
  • db_birthday_kishu

UNIQUE 衝突時は統合先(target)側を残し、統合元(source)側の行を DELETE する。

  • db_birthday: 同一 (month, day, chara, divi) で target 行がある場合、source 行を削除
  • db_birthday_kishu: 同一 kishu_id で target 行がある場合、source 行を削除

更新後、TitleMasterRepository::delete_by_id で統合元マスタ行を物理削除する。

プレビューでは birthday / birthday_kishu の衝突件数を表示する。

エラー ​

条件ユーザー向け挙動メッセージ / ログ
nonce 不正リダイレクト+エラーMessages::AUTH_FAILED
必須項目空・長さ超過リダイレクト+エラーTitleMasterAdminMessages::*
名称重複リダイレクト+エラーADD_DUPLICATE
merge 同一 IDリダイレクト+エラーMERGE_SAME_ID
merge DB 失敗リダイレクト+エラーMERGE_FAILED(ErrorHandler にログ)