技術ノート

WordPress プラグイン競合を勘でなく診断する方法

証拠を保ちながら、制御された方法で競合を切り分けます。

競合は、症状が消えるまで無作為にプラグインを止めれば解決というものではありません。どの相互作用がなぜ失敗しているかを理解することが目的です。

停止によってチェックアウト、ログイン、フォーム、定期処理に影響する場合はステージングを使います。

1. 症状を正確に定義する

スタックを変える前に、操作、ページ、ユーザー権限、リクエスト、エラーを記録します。

2. ログと直近の変更を確認する

バージョン更新、PHP 変更、設定変更で疑わしい範囲が大きく絞れることがあります。

3. 一度に一つの境界を切り分ける

他の環境を固定したまま、疑わしい一つのコンポーネントだけを停止・置換します。

4. 各プラグインだけでなく相互作用を試す

単独では正常な二つのプラグインが、hook、script、DB 書き込み、共有依存を通じて競合することがあります。

5. ベンダーコード直編集を最終修正にしない

直接修正は更新で消え、次回の障害を難しくします。hook、互換レイヤー、upstream 修正を優先します。

6. 元のユーザー操作を再テストする

修正後、最初に失敗した操作をそのまま再現し、同じ hook やデータを使う関連フローも確認します。