WordPressでFormを用いてPOSTすると404になる問題

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" />

参考

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です