WordPressでの問い合わせフォーム

2018年6月22日

問い合わせフォーム機能は「Jetpack」に標準機能として搭載されています。
通常はそちらでいいのでしょうが、私は以下の理由により「ContactForm7」を利用しています。

  • Jetpackで他に必要とする機能がない・余計な機能がある。
  • 本サイトを設置しているサーバーでは「Jetpack」の導入に難がある。
  • Google提供のアンチスパム対策「reCAPTCHA」を利用したい。

 

ContactForm7の設定

 

必要なページのみContactForm7のjsとcssを読み込む

本プラグインは非常に優秀なのですが、一つだけ困る点が「全てのページにContactFormのjsとcssが読み込まれてしまう」ことなんです。

手動ではありますが、問い合わせフォームの設置場所が限定されている場合は、「functions.php」に記述をすることにより、必要なページのみ読み込まれるようになります。

function wpcf7_file_control()
{
add_filter("wpcf7_load_js", "__return_false");
add_filter("wpcf7_load_css", "__return_false");
// contact ページのみ読み込む
if( is_page("contact") ){
if( function_exists("wpcf7_enqueue_scripts") ) wpcf7_enqueue_scripts();
if( function_exists("wpcf7_enqueue_styles") ) wpcf7_enqueue_styles();
}
}
add_action("template_redirect", "wpcf7_file_control");

 

 

 

問い合わせフォームの見栄えを良くする

「ContactForm7」はcssを利用することにより簡単に見栄えを変えることが可能です。
本サイトでは以下のサイト様の設定を元にカスタマイズさせていただいております。

 

 

ちなみに、本サイトでは以下の様に設定しています。

CSSの設定

/* ContactForm7の設定 */
.asterisk {
margin: 0 0 0 0.2em;
color: #ee388d;
}
.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="url"],
.wpcf7 textarea {
background-color: #fff;
color: #333;
width: 100%;
border: 1px solid #ddd;
padding: 0.2em;
border-radius: 5px;
}
.wpcf7 input[type="submit"] {
padding: 1em;
background: #4fc7d3;
color: #fff;
border-radius: 5px;
cursor: pointer;
}
.wpcf7 .submit-button {
text-align: center;
}

フォームの設定

<p>お名前<span class="asterisk">*</span>
[text* your-name akismet:author placeholder "例)hoge"]</p>
<p>メールアドレス<span class="asterisk">*</span>
[email* your-email akismet:author_email placeholder "例)abc@example.com"] </p>
<p>件名
[text your-subject] </p>
<p>メッセージ本文
[textarea your-message x20] </p>
<p>[recaptcha]</p>
<p> </p> <!-- ノンブランクスペース記号を挿入しています。-->
<p class="submit-button">[submit "入力内容を確認したので、メールを送信します"]</p>