Skip to content

ADM-3 ビルド管理画面

画面 ID ADM-3ADM-一覧.md)。

概要

  • テーマ配下(MVC ルートの親ディレクトリ)に展開された core_YYYYMMDD_HHMMSS ビルドディレクトリを一覧表示し、管理者が複数選択して削除できるメンテナンス用ツール画面。
  • WordPress の ツール メニュー配下(add_management_page)に登録。操作は 同一 URL への POST フォーム(リダイレクト+クエリで結果表示)。admin-ajax は使用しない
  • 現在 connector.phpVERSION 定数が指すタイムスタンプ版に該当するディレクトリは 稼働中として扱い、チェックボックス無効・削除対象外。
  • 削除処理では set_time_limit(300) を試行し、ディレクトリを再帰削除する(シンボリックリンクは unlink)。

外部インターフェース

管理画面 URL

項目
URL/wp-admin/tools.php?page=build-manager-admin
page slugbuild-manager-adminBuildManagerAdminPage::PAGE_SLUG
メニュー名(ツール配下)ビルド管理
権限manage_options

POST(削除)

load-{hook} 上の maybe_process_form()POST のみ処理。成功・失敗とも wp_safe_redirect で同一画面に戻し、クエリで通知する。

フィールド名内容
build_manager_noncenonce フィールド。アクション名 build_manager_adminNONCE_ACTION
build_manager_action削除時は delete_selectedACTION_DELETE_SELECTED
build_versions[]削除対象のタイムスタンプ文字列(^[0-9]{8}_[0-9]{6}$)。複数可

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

クエリ内容
bm_success1 成功系、0 失敗系(QUERY_SUCCESS
bm_msg表示文言(QUERY_MSGesc_html して管理通知として出力)

稼働中ビルドの判定

  • 定数 VERSION が未定義の場合は「稼働中」なし。
  • 定義されている場合、値が正規表現 /_([0-9]{8}_[0-9]{6})$/ にマッチすれば、キャプチャ群(タイムスタンプ部分)が稼働中バージョン。core_{timestamp} ディレクトリと一致する行は is_active となり削除不可。

エラー

条件ユーザー向け挙動メッセージ / ログ
画面表示時に manage_options なしwp_dieMessages::PERMISSION_DENIED
POST 時に manage_options なしリダイレクトでエラー通知Messages::PERMISSION_DENIED
nonce 不正同上Messages::AUTH_FAILED
削除対象未選択(空配列)同上BuildManagerMessages::NO_SELECTION
バージョン配列が正規表現に合致しないもののみ等で実質空同上BuildManagerMessages::INVALID_VERSION
稼働中を含む・存在しないパス等で 1 件も削除できなかった同上BuildManagerMessages::DELETE_FAILED
一部削除成功・一部失敗(稼働中スキップ・削除失敗など)成功通知(文言に一部失敗を含む)BuildManagerMessages::BULK_DELETE_PARTIAL_SUCCESS_FORMAT
全件削除成功成功通知BuildManagerMessages::BULK_DELETE_SUCCESS_FORMAT

フロントでは送信時にチェックが 0 件なら alert(msgNoSelection) で中断。件数確認ダイアログは msgConfirmFormat%d を選択件数で置換。

変更履歴(設計書)

日付(JST)変更内容コード側の対応(PR 等)
2026-04-21初版作成Issue #1762
2026-04-21見出しの画面 ID を ADM-3 に修正(旧 ADM-2 / ADM-UI-003 表記を廃止)。画面一覧リンクを相対パス化
2026-04-25ビルド管理向けメッセージ定数を BuildManagerMessages に集約した旨をエラー表に反映Issue #1854