こんにちわ、PHPエンジニアのエンジニア婦人(@naho_osada)です。
PHPエンジニアとして9年~の経験があります。
これはWordPressを触り始めた頃の話です。
当時、とりあえずフォームを作って、WordPressにくっつけてみようと思って作っていました。通常のPHPフォームなら絶対にありえないことが、WordPressと同時に動かそうとしたことで、はまってしまったことがありました。
input typeのnameの名称
名前、内容、メールアドレス入力して送信、みたいな簡易的なものです。
そこで、どうしても確認画面へPOSTできないという事象にハマりました。
他の値はすんなりいくのに。
問題のinputボックスはこちらです。
<input type=”text” name=”name” value=”” />
一見、普通のinputボックス。実際、入力ボックスとしては何も問題はありません。ちゃんと機能しています。
しかしWordPressが絡むとおかしくなる…なぜでしょう。
原因は「name=”name”」
WordPress内でnameは予約語になっているので、使用できない
「テスト用だからとりあえずなんでもいいよね」、と適当に決めたのがいけなかったそうです。
プログラム何も悪くありませんでした。
通常のフォームでしたら問題なく動きます。
まとめ
- WordPressでname属性の名称を決めるとき、安直に「name」としてはいけない
PHPでWordPressのカスタマイズを始めたばかりで、追加機能を実装しようとしたら起こり得ることでした。
WordPressに限らず、もしよくわからないことでハマってしまったら、もしかして機能の予約語に使われていないか?と疑ってみてください。