WordPressでformでsubmitしたら404になった

単純なフォームなのにsubmitしたら404! Not found! WHY!? ということがままあるので(正確にはやらかすので…)メモしときます。

状況

問題があるようには思えないフォームで、特に手掛かりもなく404になる。
Wordpressのプラグインでも、テーマファイルへの直書きでも、formがGETでもPOSTでも関係なし。
なお、ここで言う404は、サーバ(apacheとか)が出力するものではなくて、Wordpressのテーマが出力するやつです。

WordPressの予約語をname値に使ってはいけない

自前で作る関数名などに使えない、いわゆる「予約語」がWordpressにもあって、これをマズイところで使ってしまうとおかしな挙動になります。
参考:関数リファレンス/register taxonomy – WordPress Codex 日本語版

Codexではカスタムタクソノミーなどのスラッグに使うと「何のヒントも説明も無しに 404 エラーを返します。」なんだけど、
フォーム部品のname値に使っても何のヒントも説明も無しに404です。

個人的に罠っぽいなと思うものを抜粋。

  • attachment
  • author
  • author_name
  • day
  • fields
  • hour
  • minute
  • name
  • order
  • second
  • type
  • year

気を付けよ~!!!

コメントする