WordPressで「本当に実行していいですか?」というエラーが出た時の対処法。プラグイン開発版
※本ページはプロモーションが含まれていますフォーム送信のある自作プラグインを使っていると、ある日突然「本当に実行していいですか?」というエラーが出るようになりました。
不思議なのが、他の同仕様のフォームはちゃんと動いているのに、一つのフォームだけ動作しなくなってしまったのです。
CSRF対策のwp_create_nonce()がうまく動作していないのが原因だろうなとすぐわかったのですが、記述もしっかりできているし、何がいけないのかわからない。
色々試してみた結果動作するようになったのでその方法をメモします。
フイールドのname属性を変更
nonceの名前の不一致が原因として考えられましたが、ちゃんと合っていました。
「product-search」というnonce名で設定したところを名前を変えて「product」と変更したところ通常通りに動作しました。
もちろんwp_create_nonce()だけでなく、check_admin_referer()の名前も変更。
何が詳細な原因かわかりませんが、とりあえず動作するようになりました。
おわりに
今まで動いていたものが急に動かなくなると焦ります。
原因であろう箇所は特定できても、ある場合だけ動かないというのはとても解決しづらいです。
とりあえず解決できてよかった。