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

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

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

ホームページより新しいお問い合わせがありました。
以下の内容をご確認ください。
-------------------------------------------------
■ お問い合わせ内容
-------------------------------------------------
・お問い合わせ項目:[your-subject]
・お名前:[your-name] 様
・会社名:[company]
・お電話番号:[your-tel]
・メールアドレス:[your-email]
・ご住所:〒[zip] [pref][addr]
【メッセージ本文】
[your-message]
-------------------------------------------------
※このメールはHPのお問い合わせフォームより送信されました。送信者宛メッセージ本文:

=======================
このメールは自動返信メールです。
=======================
[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
=======================同意チェックの必須化(その他設定タブ)
個人情報を取得するため、プライバシーポリシー等の同意確認は必須です!!
Contact Form7では、簡単に同意確認のチェックタブを設定できます。
「その他設定」タブに以下の1行を記述します。
これだけで同意確認のチェックボックスを入れないと送信ボタンが押せなくなります。
acceptance_as_validation: on3. 利便性向上:住所の自動入力

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 の末尾に追記します。
function wpcf7_validation_textarea_hiragana($result, $tag) {
$name = $tag->name;
if ($name === 'your-message') {
$value = isset($_POST[$name]) ? trim((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.href = 'https://ご自身のサイトURL/thanks/';
}, false);
</script>https://ご自身のサイトURL/
ここの部分に遷移後のサンクスページURLを挿入してください。
これで、見た目・機能・セキュリティを兼ね備えたお問い合わせフォームの完成です!
理想のフォームで、一歩先のWebサイトへ
いかがでしたでしょうか?
お問い合わせフォームは、ユーザーとあなた(あるいはあなたのビジネス)をつなぐ大切な「窓口」です。Contact Form 7はそのままでも十分に使えますが、少しの手間を加えてデザインを整え、利便性を高めるだけで、ユーザーに与える信頼感は劇的に変わります。
今回ご紹介したカスタマイズは、見た目の美しさはもちろん、「入力のしやすさ」や「スパム対策」といった実用面にもこだわっています。
一つひとつの設定を丁寧に進めていけば、きっと納得のいくフォームが出来上がるはずです。ぜひ、ご自身のサイトに合わせて調整してみてくださいね。
編集でお困りのことがあればRhapsodieにご相談ください!
もし、手順通りに進めてもうまくいかなかったり、自分のテーマに合わせてさらに細かく調整したいと思ったりしたときは、お気軽にRhapsodieまでご相談ください。
慣れないコードの修正は、どこか一箇所間違えるだけでも表示が崩れてしまうことがあり、原因を特定するのは一苦労です。Rhapsodieでは、Webサイト制作はもちろん、こういったプラグインの細かな修正や実装のみのご依頼も喜んで承っております。
あなたのWebサイトが、より素敵なものになるお手伝いができれば幸いです。
最後までお読みいただき、ありがとうございました!















