リスティング広告 運用代行サービス|株式会社カルテットコミュニケーションズ|Yahoo広告/Google広告正規代理店

WordPressの固定ページにフォームを設置する際の落とし穴

公開日:
更新日:

WordPressで作成したブログやサイトに自分で設置したメールフォームで、フォームを送信しようとすると何故か404エラーになったという経験はありませんか?

よくあるケース

この現象、多くの場合原因はフォーム項目のname属性に”name”という名前を使っていることです。

例えば、下記は一般的な問い合わせフォームの「お名前」入力欄です。

[html]
<th>お名前</th>
<td><input type=”text” name=”name” value=”” /></td>
[/html]

このフォームのsubmitボタンをクリックすると、おそらく404エラーになるでしょう。

この場合、name=”full_name” などのように、変数名を変えてあげれば問題なく動作するようになります。

原因

どうやらこの現象は、WordPressのフレームワークで予約されているパラメータ変数名を使ってしまったときに発生するようです。

具体的には、以下の箇所で定義されている $public_query_vars という配列がそれに該当すると思われます。

[wp-includes/class-wp.php ]

[php firstline=”18″]
var $public_query_vars = array(‘m’, ‘p’, ‘posts’, ‘w’, ‘cat’, ‘withcomments’, ‘withoutcomments’, ‘s’, ‘search’, ‘exact’, ‘sentence’, ‘debug’, ‘calendar’, ‘page’, ‘paged’, ‘more’, ‘tb’, ‘pb’, ‘author’, ‘order’, ‘orderby’, ‘year’, ‘monthnum’, ‘day’, ‘hour’, ‘minute’, ‘second’, ‘name’, ‘category_name’, ‘tag’, ‘feed’, ‘author_name’, ‘static’, ‘pagename’, ‘page_id’, ‘error’, ‘comments_popup’, ‘attachment’, ‘attachment_id’, ‘subpost’, ‘subpost_id’, ‘preview’, ‘robots’, ‘taxonomy’, ‘term’, ‘cpage’, ‘post_type’);
[/php]

いくつか実験してみましたが、name, postname, post_id などは独自フォームのパラメータに使うと上手く動作しませんでした。全部が全部NGなわけではないようですが、この配列で使われているものは使用しないようにするのが賢明です。

特に問い合わせフォームの「お名前」欄は、ほとんどの方が”name”という変数名を通例的に使っていると思いますので、WordPressを使う際には注意が必要ですね。

1営業日以内に返信いたします 広告の運用代行についてのお問い合わせはこちら
シェアする

ブログ記事の中で広告運用の事例をご紹介することがありますが、実際の事例を一部加工した内容となっておりますのでご留意ください。

また、2018年7月24日よりGoogle AdWordsはGoogle広告に名称変更されました。それ以前の記事に関してはGoogle AdWordsと表記されておりますのでご了承ください。


リスティング広告の
情報をお届け

メルマガではリスティング広告に詳しくなれる記事を毎週一週間分まとめてお届けします。不定期にはなりますがリスティング広告に限らず、Web集客改善に繋がる資料もお送りしていきますので、興味のある方はぜひご登録ください。

同じカテゴリの最近の記事