2026年5月20日
2026年5月20日
WPFormsの設定方法|お問い合わせフォームの作成・通知メール・確認・スパム対策
WPForms は、ドラッグ&ドロップでフォームを作れるプラグインです。WordPress.org で配布されている無料版の「WPForms Lite」でも、お問い合わせフォームを作って通知メールを受け取れます。有料版(Pro など)では、送信内容(エントリー)の保存、複数の通知メール、条件付きロジックなどが加わります。
この記事の画面の名前は、2026年11月時点で WordPress.org で配布されている WPForms Lite 2.0.4 のファイルと日本語の翻訳で確認したものです。無料版での手順を中心に説明します。
無料版(Lite)でできること・できないこと
先に、無料版の制限を確認しておきます。
| 機能 | 無料版(Lite) |
|---|---|
| フォームの作成、ページへの埋め込み | できる |
| 通知メール | 1つだけ(「新規通知を追加」は有料版) |
| 送信後の確認(メッセージ・ページ・URL) | 1つだけ(条件で切り替えるのは有料版) |
| 送信内容(エントリー)の保存 | できない。内容は通知メールで受け取る |
| 条件付きロジック(スマートロジック) | 有料版 |
| 国・キーワードで送信を拒否するフィルター | 有料版 |
無料版では送信内容がサイトに保存されないため、通知メールが届かないと問い合わせを失います。フォームを公開する前に、通知メールが届くことを確かめてください(後述)。
1. インストールして有効化する
管理画面の「プラグイン → 新規追加」で「WPForms」を検索し、「WPForms Lite」をインストールして有効化します。WP-CLI なら次のとおりです。
wp plugin install wpforms-lite --activate
有料版は WPForms の公式サイトから zip ファイルを入手して、「プラグイン → 新規追加 → プラグインのアップロード」から入れます。
2. テンプレートからフォームを作る
- 「WPForms → 新規追加」を開きます。
- フォーム名を入れ、テンプレートの一覧から「簡単なお問い合わせフォーム」(Simple Contact Form)の「テンプレートを使用」を押します。名前・メールアドレス・メッセージの項目が入ったフォームができます。
- 「フィールド」の画面で、左の一覧から項目をドラッグして追加します。項目をクリックすると、ラベル、必須にするか、説明文などを設定できます。
- 右上の「保存」を押します。
各項目には番号(フィールド ID)が付きます。通知メールでこの番号を使うので、項目をクリックしたときに設定欄の見出しに表示される「(ID #1)」のような番号を控えておきます。
3. ページに埋め込む
いずれかの方法でページに表示します。
- フォームビルダーの「埋め込む」ボタン: 既存のページを選ぶか、新しいページを作って埋め込めます。
- ブロックエディター: 固定ページの編集画面で「WPForms」ブロックを追加し、フォームを選びます。
- ショートコード: クラシックエディターやウィジェットでは、次のショートコードを書きます(
123はフォームの ID。「WPForms → すべてのフォーム」で確認できます)。
[wpforms id="123"]
4. 通知メールを設定する
フォームビルダーの「設定 → 通知」で、送信があったときに届くメールを設定します。「通知を有効化」がオンになっていることを確認します。
| 項目 | 設定例 | 説明 |
|---|---|---|
| 送信先メールアドレス(Send To Email Address) | {admin_email} |
受け取るアドレス。初期値は「設定 → 一般」の管理者メールアドレス。カンマで区切ると複数に送れる |
| メール件名(Email Subject Line) | お問い合わせ: {field_id="1"} |
{field_id="1"} は ID が1の項目の入力値に置き換わる |
| 差出人名(From Name) | サイト名 | メールの差出人として表示される名前 |
| 送信元メールアドレス(From Email) | wordpress@example.com |
サイトと同じドメインのアドレスにする |
| Reply-To | {field_id="2"} |
返信先。メールアドレスの項目の ID を指定すると、受け取ったメールにそのまま返信できる |
| メールメッセージ(Email Message) | {all_fields} |
{all_fields} は入力された全項目に置き換わる |
「簡単なお問い合わせフォーム」のテンプレートでは、名前が ID 1、メールアドレスが ID 2、メッセージが ID 3 で、送信先・Reply-To・メールメッセージには上の表の例と同じ値が最初から入っています。
{admin_email} や {field_id="1"} は「スマートタグ」と呼ばれる置き換え用の記号です。各欄の「スマートタグを表示」から選んで入れられます。
「送信元メールアドレス」に問い合わせた人のアドレス(メールアドレスの項目)を入れると、受信側で迷惑メールと判定されやすくなります。送信元はサイトのドメインのアドレスにし、返信先は「Reply-To」で指定します。
問い合わせた人への自動返信メールは、2つ目の通知として作るため、有料版の機能です。
5. 送信後の動作(確認)を設定する
「設定 → 確認」で、送信が終わったあとに表示するものを「確認タイプ」から選びます。
| 確認タイプ | 動き |
|---|---|
| メッセージ | フォームの場所に確認メッセージを表示する(初期値) |
| ページを表示 | 指定したサイト内のページ(サンクスページなど)を表示する |
| URLに移動(リダイレクト) | 指定した URL に移動する |
送信完了を広告や解析で計測する場合は、「ページを表示」でサンクスページを用意すると、そのページの表示で計測できます。
6. スパム対策を設定する
「設定 → スパム対策とセキュリティ」で設定します。無料版で使えるのは次の項目です。
- スパム対策保護を有効化(Enable anti-spam protection): 訪問者には見えない仕組みでスパムを判定します。新しいフォームでは初期値でオンです。
- Akismet アンチスパム保護を有効にする: Akismet プラグインを有効にして設定している場合に表示されます。
- 最短送信時間を有効にする: フォームを開いてから指定した秒数より早く送信されたものを拒否します。自動送信のスパムに効きます。
- CAPTCHA: hCaptcha、reCAPTCHA、Cloudflare Turnstile のいずれかを使えます。先に「WPForms → 設定 → CAPTCHA」で種類を選び、各サービスで取得したサイトキーとシークレットキーを保存してから、フォームの設定で有効にします。
特定の語句を含む送信を拒否する機能(キーワードフィルター)は有料版です。無料版で同じことをしたい場合は、送信の処理中に実行される wpforms_process フックでエラーを設定します。子テーマの functions.php か、Code Snippets などのプラグインに追加します。
<?php
// 指定した語句を含む送信を拒否する(WPForms Lite でも動く)
add_action( 'wpforms_process', function ( $fields, $entry, $form_data ) {
$blocked_words = [ 'casino', 'viagra' ];
foreach ( $fields as $field ) {
$value = ( isset( $field['value'] ) && is_string( $field['value'] ) ) ? $field['value'] : '';
foreach ( $blocked_words as $word ) {
if ( '' !== $value && false !== stripos( $value, $word ) ) {
// エラーを設定すると送信は止まり、フォームの上にこの文が表示される
wpforms()->obj( 'process' )->errors[ $form_data['id'] ]['header'] = '送信内容に使用できない語句が含まれています。';
return;
}
}
}
}, 10, 3 );
特定のフォームだけに使う場合は、フック名を wpforms_process_123(123 はフォームの ID)にします。
7. 公開前に通知メールが届くか確かめる
フォームを公開したら、自分で一度送信し、通知メールが届くかを確かめます。届かない場合は、WordPress からのメール送信そのものに問題があることが多く、SMTP での送信に切り替えると改善します。確認の手順は、フォームプラグインは違いますが「Contact Form 7でメールが届かないときの確認手順」の4〜6と同じです。SMTP の設定方法は「WordPressのメールをSMTP送信に変更する方法」で説明しています。
注意点
- 無料版では送信内容がサイトに保存されません。通知メールの送信先を、普段から見ているアドレスにしておきます。
- 「WPForms → 設定」の「Lite Connect」でエントリーのバックアップ(Enable Entry Backups)を有効にすると、送信内容が WordPress の外(WPForms 側)に保存され、有料版に切り替えたときに取り込めます。バックアップの保存期間は1年です。問い合わせ内容という個人情報を外部に預けることになるので、プライバシーポリシーと照らして判断します。
- キャッシュ系のプラグインを使っていて、送信できない、CAPTCHA が表示されないなどの問題が出た場合は、フォームを置いたページをキャッシュの対象から外して確かめます。