WordPressで作成したウェブサイトにお問い合わせフォームを設置する方法は無数にありますが、その中でも不動の人気を誇るプラグインといえば「Contact Form 7」です!
このプラグインが多くのユーザーに支持されている最大の理由は、「カスタマイズ性が非常に高い」こと。しかし、自由度が高い反面、HTMLやCSSの知識がない方にとっては、標準のシンプルなフォームから一歩進んだデザインを作るのは少し難易度が高いと感じるかもしれません。
「もっとプロっぽくしたい」「サイトの雰囲気に合わせたい」……そんな悩みをお持ちの方も多いはず。
そこで今回は、Contact Form 7を「かっこよく」「おしゃれに」、そして何より「実用的」にカスタマイズする方法を徹底解説します。
初心者の方でも、記事内のコードをコピー&ペーストするだけで簡単に実装できるようまとめました。ぜひ、あなたのサイトにぴったりの、信頼感あふれるお問い合わせフォームを手に入れてください!
1. カスタマイズ前後のデザイン比較
Contact Form 7の標準デザインは非常にシンプルですが、CSSを加えることで「信頼感のあるビジネス仕様」に生まれ変わります。
標準のお問い合わせフォーム

カスタマイズ後のお問い合わせフォーム

2. Contact Form 7での基盤作成
まずはプラグインの編集画面で、フォームの構造(HTML)を作成します。
フォームタブの設定
以下のコードをコピーして、コンタクトフォームの「フォーム」タブ内に貼り付けてください。
注釈:
サンプルと書かれた部分は、ご自身のサイトに合わせて書き換えてください。特にプライバシーポリシーのURL(<a href="URL">)の設定を忘れないようにしましょう。
<center>
<div id="cf-tbl">
<table>
<tbody>
<tr>
<th><span class="required">必須</span>お問い合わせ内容</th>
<td>[checkbox* your-subject "サンプル1" "サンプル2" "サンプル3" "サンプル4" "サンプル5"] </td>
</tr>
<tr>
<th><span class="required">必須</span>お名前</th>
<td> [text* your-name watermark" 山田 太郎"] </td>
</tr>
<tr>
<th><span class="optional">任意</span>会社名</th>
<td> [text company watermark" 株式会社〇〇" ]</td>
</tr>
<tr>
<th><span class="required">必須</span>電話番号</th>
<td> [tel* your-tel watermark" 03-1234-5678"]</td>
</tr>
<tr>
<th><span class="required">必須</span>メールアドレス</th>
<td> [email* your-email watermark" example@example.com" ]</td>
</tr>
<tr>
<th><span class="required">必須</span>郵便番号</th>
<td> [text* zip id:zip 10/ watermark" 123-4567" ]</td>
</tr>
<tr>
<th><span class="required">必須</span>都道府県</th>
<td> [text* pref id:pref watermark"例:東京都"]</td>
</tr>
<tr>
<th><span class="required">必須</span>住所</th>
<td> [text* addr id:addr watermark" 都道府県以降の住所" ]</td>
</tr>
<tr>
<th><span class="required">必須</span>お問い合わせ</th>
<td> [textarea* your-message watermark"こちらにお問い合わせ内容をご入力ください" ] </td>
</tr>
<tr>
<th><span class="required">必須</span>同意確認</th>
<td>[acceptance accept-this-1] <a href="プライバシーポリシーのURL">プライバシーポリシー</a>についてご同意し、入力内容に間違いがないことを確認しました。 [/acceptance]</td>
</tr>
</tbody>
</table>
</div>
[submit "上記の内容で送信する"]
</center>メールの自動返信設定(メールタブ)
次に「メール」タブを設定します。管理者宛と、ユーザーへの自動返信(メール2)にそれぞれ以下のタグを配置してください。
管理者宛メッセージ本文:

ホームページよりお問い合わせがありました。
--------------------------------------------
・お問い合わせ内容:[your-subject]
・お名前:[your-name]
・会社名:[company]
・電話番号:[your-tel]
・メールアドレス:[your-email]
・住所:〒[zip] [pref][addr]
・メッセージ:
[your-message]
--------------------------------------------送信者宛メッセージ本文:

=======================
このメールは自動返信メールです。
[your-name] 様 この度はお問合せありがとうございます。
ご入力された内容は下記のとおりです。
2~3日以内にご返信させていただきますので今しばらくお待ちください。
返信がない場合は、メールが届いていない可能性がありますので、電話もしくはメールでご連絡ください。
=======================
・お問い合わせ内容 [your-subject]
・お名前 [your-name]
・会社名 [company]
・電話番号 [your-tel]
・メールアドレス [your-email]
・住所 〒[zip] [pref][addr]
・メッセージ [your-message]=======================
Rhapsodie
〒570-0012
大阪府守口市大久保町2-29-1-3A
TEL 06-1234-5678
Mail info@rhapsodie-web.com
HP https://rhapsodie-web.com
同意チェックの必須化(その他設定タブ)
「その他設定」タブに以下の1行を記述します。これにより、チェックボックスを入れないと送信ボタンが押せなくなります。
acceptance_as_validation3. 利便性向上:住所の自動入力

id:zip や id:pref と連動して動作します。4. デザインのカスタマイズ(CSS)
見た目を整えるため、「外観」>「カスタマイズ」>「追加CSS」(もしくはテーマ独自のCSS設定)に以下のコードを追記してください。
/* Contact Form 7 テーブルカスタマイズ */
#cf-tbl {
width: 100%;
max-width: 800px;
margin: 0 auto;
}
#cf-tbl table {
width: 100%;
border-collapse: collapse;
border: 1px solid #CCC;
color: #444;
}
#cf-tbl table tr th,
#cf-tbl table tr td {
padding: 1.5em;
border: 1px solid #CCC;
vertical-align: middle;
}
#cf-tbl table tr th {
width: 30%;
background: #f7f7f7;
text-align: left;
}
/* 必須・任意ラベル */
.required {
font-size: .8em;
padding: 3px 8px;
background: #F57500;
color: #fff;
border-radius: 3px;
margin-right: 8px;
}
.optional {
font-size: .8em;
padding: 3px 8px;
background: #b0c4de;
color: #fff;
border-radius: 3px;
margin-right: 8px;
}
/* 入力フィールド */
input.wpcf7-form-control.wpcf7-text,
textarea.wpcf7-form-control.wpcf7-textarea {
width: 100%;
padding: 10px;
border: 1px solid #d0d5d8;
border-radius: 3px;
background-color: #f9f9f9;
box-sizing: border-box;
}
/* 送信ボタン */
input.wpcf7-submit {
display: block;
width: 300px;
margin: 30px auto;
padding: 15px;
background: #ffaa56;
color: #fff;
font-size: 18px;
font-weight: bold;
border: none;
border-radius: 5px;
cursor: pointer;
transition: 0.3s;
}
input.wpcf7-submit:hover {
background: #e69545;
transform: translateY(-2px);
box-shadow: 0 5px 15px rgba(0,0,0,0.1);
}
/* レスポンシブ対応 (スマホ用) */
@media screen and (max-width: 768px) {
#cf-tbl table, #cf-tbl tbody, #cf-tbl tr, #cf-tbl th, #cf-tbl td {
display: block;
width: 100% !important;
}
#cf-tbl table tr th {
border-bottom: none;
}
input.wpcf7-submit {
width: 100%;
}
}5. スパム対策:ひらがな判定の導入
海外からの自動スパムを撃退するために、「メッセージ本文にひらがなが含まれていない場合はエラーにする」 機能をPHPで追加します。
注意:
functions.phpを編集します。必ずバックアップを取るか、子テーマを使用してください。
functions.php の末尾に追記します:
// Contact Form 7 本文に「ひらがな」がなければ送信不可にする
function wpcf7_validation_textarea_hiragana($result, $tag) {
$name = $tag->name;
$value = (isset($_POST[$name])) ? (string) $_POST[$name] : '';
if ($value !== '' && !preg_match('/[ぁ-ん]/u', $value)) {
$result->invalidate($tag, 'スパム対策のため、本文には「ひらがな」を含めて入力してください。');
}
return $result;
}
add_filter('wpcf7_validate_textarea', 'wpcf7_validation_textarea_hiragana', 10, 2);
add_filter('wpcf7_validate_textarea*', 'wpcf7_validation_textarea_hiragana', 10, 2);6. 送信完了後のサンクスページ遷移
送信後に「お問い合わせありがとうございました」という専用ページ(固定ページ)へ飛ばす設定です。フォーム編集画面の最後に以下のコードを追加してください。
<script>document.addEventListener( 'wpcf7mailsent', function( event ) {
location = 'https://ご自身のサイトURL/thanks/';
}, false );
</script>https://ご自身のサイトURL/
ここの部分に遷移後のサンクスページURLを挿入してください。
これで、見た目・機能・セキュリティを兼ね備えたお問い合わせフォームの完成です!
理想のフォームで、一歩先のWebサイトへ
いかがでしたでしょうか?
お問い合わせフォームは、ユーザーとあなた(あるいはあなたのビジネス)をつなぐ大切な「窓口」です。Contact Form 7はそのままでも十分に使えますが、少しの手間を加えてデザインを整え、利便性を高めるだけで、ユーザーに与える信頼感は劇的に変わります。
今回ご紹介したカスタマイズは、見た目の美しさはもちろん、「入力のしやすさ」や「スパム対策」といった実用面にもこだわっています。
一つひとつの設定を丁寧に進めていけば、きっと納得のいくフォームが出来上がるはずです。ぜひ、ご自身のサイトに合わせて調整してみてくださいね。
編集でお困りのことがあればRhapsodieにご相談ください!
もし、手順通りに進めてもうまくいかなかったり、自分のテーマに合わせてさらに細かく調整したいと思ったりしたときは、お気軽にRhapsodieまでご相談ください。
慣れないコードの修正は、どこか一箇所間違えるだけでも表示が崩れてしまうことがあり、原因を特定するのは一苦労です。Rhapsodieでは、Webサイト制作はもちろん、こういったプラグインの細かな修正や実装のみのご依頼も喜んで承っております。
あなたのWebサイトが、より素敵なものになるお手伝いができれば幸いです。
最後までお読みいただき、ありがとうございました!















