PHP Wordpress

記事にデータをPOSTしたら存在するはずのページで、404 PageNotFoundページが見つかりませんのエラー表示となる。WordPress、ショートコード、PHP。

コトの発端

とある記事にて、WordPressのショートコードを使用して、PHPへフォームデータをPOSTするプログラムを開発していた。

こんなの

記事のフォームから同じ記事へデータをPOSTしたところ、URLは同じはずなのに404 PageNotFound ページが見つかりませんの表示になってしまった。

なぜだ。。。

解決編

POSTするときの名前に制約があるらしい。下記サイト参照。

WordPressでGETやPOSTを使ったら404エラーが出る

https://yaruzou.net/wp-form-post-get-404

このときに開発したフォームのHTMLは下記の通り。

<form method="post">
テキスト:<input type="text" name="name">
<input type="submit" value="送信">
</form>

このフォームだとテキストデータにnameという名前をつけて送信しているが、そのnameがワードプレスも使用している名前(予約語)であったため、今回のエラーが発生したことが判明した。

ポストする名前をTESTDATAに変更したところ、正常に動作するようになったことを確認した。

正常に動作するフォームのHTML

<form method="post">
テキスト:<input type="text" name="TESTDATA">
<input type="submit" value="送信">
</form>

まとめ

WordPressの記事や固定ページにフォームからデータをPOSTするときは、WordPressのシステムが使用している名前(予約語)を使用しないようにデータの名前を設定しなければならない。

参考にさせていただいたページ

WordPressでGETやPOSTを使ったら404エラーが出る

https://yaruzou.net/wp-form-post-get-404

いつもの

記事の正確性については無保証です。

  • この記事を書いた人
あっきー

あっきー

とある企業の研究者。研究分野以外に手を出しすぎて毎日が慌ただしい。 研究者の肩書きが正しいかどうかは万年の謎。 得意ジャンルはデータベースとセキュリティーですが、AIやIoT、アプリ開発など、手広く活動しています。

-PHP, Wordpress
-, ,

Translate »