__( '🔵 disabled — wp_postmeta 仍是 source-of-truth', '2meet-data-optimizer' ), 'dual_write' => __( '🟡 dual_write — 同時寫 wp_postmeta + flat 表', '2meet-data-optimizer' ), 'shadow_read' => __( '🟠 shadow_read — 寫雙路徑,讀比對', '2meet-data-optimizer' ), 'aeav_only' => __( '🟢 aeav_only — flat 表為 source-of-truth', '2meet-data-optimizer' ), ); // Status banner from prior action redirect. // Read-only display banner — server-set redirect message, no form processing. // phpcs:ignore WordPress.Security.NonceVerification.Recommended $msg_raw = isset( $_GET['wpdo_msg'] ) ? sanitize_text_field( wp_unslash( (string) $_GET['wpdo_msg'] ) ) : ''; /** * Map redirect message code → user-facing string. * * @param string $code Message code from wpdo_msg query arg. * @return string */ $wpdo_format_msg = static function ( string $code ): string { $prefix = strtok( $code, '_' ); $rest = substr( $code, strlen( (string) $prefix ) + 1 ); switch ( $prefix ) { case 'backfill': return sprintf( /* translators: %s: total flat rows */ __( 'Backfill 完成:7 個 group 共 %s 個 post 已寫入 flat 表。', '2meet-data-optimizer' ), $rest ); case 'cutover': return sprintf( /* translators: %s: rows */ __( 'Legacy hot table cutover 完成:%s 行已 copy 至 flat 表。', '2meet-data-optimizer' ), $rest ); case 'promote': return sprintf( /* translators: %s: target mode */ __( 'Post mode 已升級至 %s。', '2meet-data-optimizer' ), $rest ); case 'postmetacleanupdone': return sprintf( /* translators: %s: deleted rows */ __( '已從 wp_postmeta 刪除 %s 行垃圾。', '2meet-data-optimizer' ), $rest ); case 'err': return sprintf( /* translators: %s: error code */ __( '錯誤:%s(請查看 wpdo_errors 日誌)。', '2meet-data-optimizer' ), str_replace( '_', ' ', $rest ) ); default: return $code; } }; ?>

1:

$g ) : ?>

wp option update wpdo_bridge_modes '{"post":"disabled",...}'