Files
2meet-data-optimizer-playli…/DESIGN.md
T
wpdev c8d6e22def chore: initial snapshot of 2meet-data-optimizer-playlist-addon v0.1.0
Baseline before backporting wp-data-optimizer v3.0.1-v3.4.6.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TbG1keQQ7XBa7qMQY16KCY
2026-07-31 05:06:36 +08:00

1.3 KiB

DESIGN — 2meet Data Optimizer Playlist AddOn

父外掛架構決策見 ../2meet-data-optimizer/DESIGN.md


角色定位

本 AddOn 是 2meet-data-optimizer 的整合層,負責將 2meet-playlist 的 EAV 模式(postmeta / 自訂表)橋接到核心反 EAV 引擎。

  • 修改 2meet-playlist 本身
  • 繞過 2meet-data-optimizer 核心
  • 只透過公開合約(TMDO_APItmdo_register_* hook)參與

啟動順序

plugins_loaded:4   2meet-data-optimizer (core) 啟動
plugins_loaded:5-6 本 AddOn bootstrap → 註冊 hook callback
plugins_loaded:6+  2meet-playlist 本體啟動
init:0             核心 fire tmdo_register_* → 本 AddOn 的 callback 執行

詳見 plan 文件第 3 章「載入順序」。


為什麼是獨立 AddOn 而非塞進核心

  • 核心 2meet-data-optimizer 對外承諾「零依存任何業務外掛」
  • 整合層發版節奏應跟隨 2meet-playlist 而非核心
  • 站台不用 2meet-playlist 時不需被迫載入這段程式碼

邊界檢查清單

  • 不直接 SELECT FROM wp_*meta
  • 不繞過 Hook Bus
  • 所有 SQL 走 $wpdb->prepare()
  • DB 表名走 TMDO_DB::table()
  • 對外只 expose TMDO_Playlist_* 命名空間