1時間ほど悩まされたので備忘録を残します。
基本的にプラグインを導入すれば目的を果たすことができるWordPressだが、やむを得ずFormを自前で用意してデータをPOSTしたい場合がある。
その際に、以下のようなよくあるFormを用いたところ、Submit後に404が返却される問題があった。
<form action="<?php the_permalink();?>" method="post"> <input id="userid" type="text" name="userid" /> <input id="name" type="text" name="name" /> <input id="address" type="text" name="address"/> <button type="submit">お申込み</button> </form>
原因を調べてみると、上記コードの以下の部分に問題があったようだ
<input id="name" type="text" name="name" />
どうやら、WordPressでは画面の遷移先の決定に$_POST[‘name’]を用いているらしく、自前のFormから送信されたnameと衝突してしまい、正しい画面遷移が行えなくなってしまったらしい。
そのため、今回の場合は以下のように修正することで正常にPOSTできることを確認した
<input id="name" type="text" name="username" />