プラグイン開発のトラブルシューティング
プラグイン開発中によく遭遇するトラブルとその対処法をまとめました。
致命的エラー(Fatal Error)
関数名・クラス名の重複が最も多い原因です。他のプラグインと関数名が衝突しないよう、関数名にはプラグイン固有の接頭辞(例:my_plugin_)を付けるのが基本です。
<?php
// 悪い例:他のプラグインと衝突しやすい
function get_data() { ... }
// 良い例:接頭辞を付ける
function my_plugin_get_data() { ... }
他プラグインとの競合
- 全プラグインを一旦無効化し、1つずつ有効化して問題が再現するプラグインを特定
- Query Monitorで、競合しているフックやクエリを確認
- フック実行の優先順位(add_actionの第3引数)を調整して解決できる場合がある
フックが実行されない
- フック名のスペルミスがないか確認
- フックを登録するタイミングが早すぎる/遅すぎないか確認(init、wp_loaded等のタイミングを見直す)
- 条件分岐で早期リターンしてしまっていないか確認
設定が保存されない
Nonceの検証失敗、またはフォームのname属性と受け取り側の$_POSTキー名の不一致が主な原因です。セキュリティ対策で解説したNonceの実装を再確認してください。