経験知ロゴ

日々の経験を知識として発信するブログ

WordPressで「本当に実行していいですか?」というエラーが出た時の対処法。プラグイン開発版

WordPress実行していいですか?

フォーム送信のある自作プラグインを使っていると、ある日突然「本当に実行していいですか?」というエラーが出るようになりました。

不思議なのが、他の同仕様のフォームはちゃんと動いているのに、一つのフォームだけ動作しなくなってしまったのです。

CSRF対策のwp_create_nonce()がうまく動作していないのが原因だろうなとすぐわかったのですが、記述もしっかりできているし、何がいけないのかわからない。

色々試してみた結果動作するようになったのでその方法をメモします。

フイールドのname属性を変更

nonceの名前の不一致が原因として考えられましたが、ちゃんと合っていました。

「product-search」というnonce名で設定したところを名前を変えて「product」と変更したところ通常通りに動作しました。

もちろんwp_create_nonce()だけでなく、check_admin_referer()の名前も変更。

何が詳細な原因かわかりませんが、とりあえず動作するようになりました。

わからないことは人に聞こう

プログラミングをする上で、わからないことはネットなどを使い自分で調べる技術が必要ですよね。

時間がかかっても、ある程度のことは解決できます。

しかし、どうしても答えにたどり着けなかったり、探す時間が惜しいときもあります。

そこでオススメなのが無料登録でプログラミングに関する質問ができるテラテイルです。

質問の投稿にコードも投稿できるので、自分のコードを投稿して問題のある箇所を指摘してもらうことができます。

プログラマーには、自分で探す技術も必要ですが、人に聞く技術は更に重要です。

登録無料で質問できますので、テラテイルで質問する力を磨いてみましょう!

おわりに

今まで動いていたものが急に動かなくなると焦ります。

原因であろう箇所は特定できても、ある場合だけ動かないというのはとても解決しづらいです。

とりあえず解決できてよかった。

▼この記事をシェアできるリンク


▼このブログをフォロー・RSS購読できるリンク