FAQ

This page is also available in English.

Contact Form 7 の管理ページはどこにありますか?

WordPress にログインして お問い合わせ > コンタクトフォーム を開いてください。

A screenshot image shows the location of the admin menu for Contact Form 7's settings page.
Screenshot of the Contact > Contact Forms admin menu

関連項目: 管理画面

投稿の内容にコンタクトフォームを設置するにはどうすればよいですか?

最も簡単で且つ推奨される方法はコンタクトフォーム選択ブロックを使うことです。WordPress のブロックエディター画面にて、おなじみの富士山アイコンの Contact Form 7 ブロックを選択して、設置したいコンタクトフォームを選ぶだけです。

ブロック選択モーダルのスクリーンショット。
ブロック選択モーダルのスクリーンショット。

また、昔ながらの WordPress ショートコードも引き続き利用可能です。この場合は、対象のコンタクトフォームのショートコードをコピーして、それを投稿本文中にペーストする手作業が必要になります。ブロックエディターではショートコードブロックを使います。

コンタクトフォームが表示されません。代わりに [contact-form-7 404 "Not Found"] というコードが表示されます。

[contact-form-7 404 "Not Found"] というコードは、ショートコード(ひとつ前の回答を参照)で指定されたコンタクトフォームが見つからなかったことを示すサインです。正しいショートコードを使用しているか確認してください。

コンタクトフォームに項目を追加するにはどうすればよいですか?

フォームタブパネルの入力項目にフォームタグを挿入します。フォームタグに関する詳細はタグの使い方を参照。

A screenshot image shows form-tags used in the Form tab panel.
Screenshot of form-tags in the Form tab panel

最初のうちはフォームタグの構文が少し難しく感じるかもしれませんが心配は要りません。入力エリアの上にあるタグジェネレーターボタンが手助けします。

フォームにタグを追加したのにメールには何も表示されません。どうすれば追加した項目の入力内容をメールに取り込めますか?

メールタブの項目にメールタグを追加する必要があります。これらのメールタグはフォームタブで使われているフォームタグと対応付いていなければなりません。例えば [text your-new-field] というフォームタグを使っているなら、これに対応してメールタブ内で使われるべきメールタグは [your-new-field] です。詳しくはタグの使い方を参照してください。

A screenshot image shows mail-tags used in the Mail tab panel.
Screenshot of mail-tags in the Mail tab panel

メールタブのメールタグは対応付けられたフォーム入力項目へのユーザー入力により置き換えられます。

メールに [foobar] のような変なコードが入っているのですが、これは何ですか? 入れて欲しいのはユーザーの入力内容なんですが。

ひとつ前の回答を参照してください。この場合、メールタブパネルにある [foobar] に対応するタグがフォームタブパネルにないためです。対応するフォームタグのないメールタグは置換されずにそのまま出力されてしまいます。

入力項目の名前に禁止語や予約語はありますか?

はい、いくつかの使用できない名前が存在します。ただしこれは Contact Form 7 の制約というよりむしろ WordPress の制約といえます。

WordPress のクエリーが使うパラメーターと同じ名前を持つ入力項目を送信すると、WordPress はそれらを混同してしまうでしょう。なのでその名前は使ってはいけません。

以下、WordPress がクエリーで使うパラメターのリストです: m, p, posts, w, cat, withcomments, withoutcomments, s, search, exact, sentence, 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, attachment, attachment_id, subpost, subpost_id, preview, robots, taxonomy, term, cpage, post_type, and embed.

例えば、’name’ というのはクエリーで使われている名前なので、入力項目の名前に ‘name’ を使ってはいけません。使用できない名前を避ける最善策は、名前に接頭辞か接尾辞を付けることです。例えば、’name’ のかわりに ‘your-name’ や ‘name-1234’ を使うとよいでしょう。

関連項目: 送信完了後にいつも 404 のエラーページにリダイレクトされてしまいます。

メールの件名を指定することはできますか?

できます。メールタブ件名の項目を書き換えてください。

コンタクトフォームから送信されたメッセージを見ることはできますか?

Contact Form 7 は送信されたメッセージを保存しません。Contact Form 7 から送られたメッセージを管理するには、Flamingo (同じ作者による別のプラグイン) をインストールしてください。

自動返信メールは送れますか?

はい、もちろんです。メールタブパネルにある “メール (2) を使う” にチェックを入れて、メール (2) を自動送信メールのテンプレートとしてセットアップしてください。メール (2) はメインのメールと同じように機能する追加のメールテンプレートですが、メール (2)メールが正常に送信された場合に限り送信される点で異なります。

コンタクトフォームから届くメールの送信者名が「WordPress」になっています。どうすればこれを変更できますか?

送信者アドレスは送信者のメールアドレスと任意でつけられる送信者名で構成されます。送信者名が指定されなかった場合、WordPress は送信者名として「WordPress」を設定します。「WordPress」を送信者名に表示させたくない場合は、メールタブパネル差出人項目に、次の例のように送信者名を明示的に指定する必要があります:

A screenshot image shows the Mail tab panel. The From field reads "Sender Name ".
Screenshot of the Mail tab panel

投稿内容以外の場所にコンタクトフォームを配置することはできますか?

はい。投稿内容に置く場合と同じ方法で、サイドバーのテキストウィジェット内にもコンタクトフォームを設置できます。

関連項目: テンプレートファイルにコンタクトフォームを埋め込むことはできますか?

テンプレートファイルにコンタクトフォームを埋め込むことはできますか?

はい。でも、コンタクトフォームのショートコードをテンプレートファイルに直接挿入することはできません。ショートコードを apply_shortcodes() 関数に引数として渡して、その出力を表示する必要があります。次のように:

<?php echo apply_shortcodes( '[contact-form-7 id="1234" title="Contact form 1"]' ); ?>

フォームを送信すると「メッセージの送信に失敗しました」というエラーメッセージが表示されます。何が悪いのですか?

2つのケースが考えられます。ひとつはメールサーバにおいて実際に問題が発生していて、そのためメールが送信できなかったケースです。この場合、エラーメッセージは赤色のボーダーラインで囲まれています。サーバー管理者に問い合わせてください。

もうひとつは、フォーム送信にスパムの疑いがあると判断されたケースです。この場合、エラーメッセージはオレンジのボーダーラインで囲まれています。

Four types of response output box; showing examples of green, yellow, orange, and red bordered box.

関連項目

私の場合は赤いボーダーラインのエラーが出るのですが、どうすれば直せますか?

赤いボーダーラインは Contact Form 7 が wp_mail() を使ってメール送信を試みたものの失敗したことを示しています。この問題を解決するためにはまず失敗の原因を突き止める必要があります。

これには様々な原因が考えられ、例えばメールのセットアップが正しく行われていない場合です。

関連項目: WordPress 4.4.1 における赤枠エラー問題

メールサーバーがダウンしている、接続不能、またその他のトラブルに見舞われている場合にも、メール送信は失敗します。この場合は自分だけで問題を解決することがより難しくなるでしょう。ホスティングサービスのサポートに相談することをお勧めします。エラーログを確認して問題の原因を見つけてくれるかもしれません。

別のメールサーバーを使うことで問題を回避できる場合もあります。

オレンジのボーダーラインのエラーが出るのはなぜですか?

オレンジのボーダーラインはスパムのサインです。対スパムモジュールのひとつがフォーム送信に疑わしい動きを検知したことを示しています。

Contact Form 7 は AkismetreCAPTCHAコメントブラックリストなどの多種多様な対スパムモジュールを備えています。どのモジュールがフォーム送信をブロックしたのか正確に知りたい場合はスパムログ機能が役に立つでしょう。

「メッセージを送信しました」という緑色のボーダーラインつきのメッセージは表示されるのですが、そのメールが送られてきません。

緑色のボーダーラインのメッセージが表示されるということは、メール送信の PHP 関数は確かに成功して完了しているということを示しています。ですから、メールを受け取ることができないなら、そのメールがその後誘拐されたか、消されたかしている可能性が高いです。

もしメールサーバーのログを見ることができるなら、その中に手がかりを見つけられるかもしれません。スパムフィルターがこの手の問題の原因となることもよくあります。

関連項目: メールのセットアップに関するベストプラクティス

送信完了後にいつも 404 のエラーページにリダイレクトされてしまいます。

この問題はふたつの誤設定が組み合わさって起こります。まず、AJAX の JavaScript が正しく機能していないことがひとつめの問題です。このためにあなたのコンタクトフォームは送信後に不必要なリダイレクトを発生します。もうひとつの問題は入力項目の名前に使用できない名前が使われていることです。これが WordPress を混乱させ、404 (“Not Found”) のエラーを発生させる結果になります。

フォームの送信後、回転する矢印のアイコンは現れるのですが、それっきりで何も起きません。

こういった問題はプラグイン間、またはテーマとの衝突が原因でよく起こります。試しに他のプラグインをすべて停止して、テーマをデフォルトテーマに戻してみてください。

一部のブラウザ上でコンタクトフォームの動作がおかしくなります。

同じコンタクトフォームなのに表示するブラウザーによって見た目が違うというのは普通にあることです。特に日付入力項目数値入力項目が使われている場合には大きく違って見えるでしょう。それが単に見た目の違いでフォーム自体は問題なく使えるなら、特に心配する必要はありません。全く正常です。

もしそれが見た目だけの問題ではなく、実際にフォームの正常な使用の妨げになっているなら、ブラウザー間の挙動の違いは、そのページで使われている HTML、CSS、または JavaScript にエラーがあることの暗示かもしれません。この場合にはデバッグが必要になります。お使いのブラウザーに備えられている開発者ツールを利用するか、サポートフォーラムに助けを求めましょう。

コンタクトフォームを英語ではなく自国語で使いたいのですが。

Contact Form 7 は多くの言語に翻訳されています。languages フォルダにあなたの言語の言語ファイルがあるか確認してください。

Contact Form 7 のロケール設定は WordPress の設定に依存します。WordPress の設定を変更すると同時に Contact Form 7 も変わります。WordPress のロケール設定の方法はこちらを参照してください。

関連項目: コンタクトフォームを他の言語で使うには

CAPTCHA が機能しません。画像が表示されないのです。

CAPTCHA を使うためには GD と FreeType ライブラリがサーバにインストールされている必要があります。それから、Contact Form 7 で使用する CAPTCHA の一時ファイル保存フォルダを書き込み可能にしておいてください。詳しくは CAPTCHA を参照。

See also: Tips for troubleshooting Really Simple Captcha issues

CAPTCHA のテキスト入力項目が Internet Explorer では動くのに、Firefox では正しく機能しません。入力項目にコードを入力できません。

この現象は <label> 要素の誤使用が元でよく起こります。それらが正しく使われているか確認してください。

こちらは正しい使われ方です:

[captchac your-captcha]
<label>Enter the code: [captchar your-captcha]</label>

こちらは正しく動かないでしょう:

<label>[captchac your-captcha]
Enter the code: [captchar your-captcha]</label>

ファイルアップロード、ファイル添付が機能しません。

こちらの記事を参照してください。

ファイルのアップロードとメール添付

Contact Form 7 は HTML5 の入力タイプをサポートしますか?

はい。Contact Form 7 3.4 以上からこれらの HTML5 入力タイプに対応したフォームタグをサポートします: emailtelurlnumberrangedate

HTML5 の入力タイプを使いたくない場合は、次のコードをテーマの functions.php ファイルに追加することで無効化できます:

最新のブラウザでも HTML5 の全機能をサポートしているわけではないのでご注意ください。例えば最新の Firefox でも date 入力タイプ(カレンダーから日付をピックアップする UI)や number 入力タイプ(数値を入力するスピンボックス型 UI)をまだサポートしていないため、カレンダーやスピンボックスの UI の代替として一般的なテキスト入力フィールドを提供します。ユーザーにとってはどのような形式の入力値を入れたら良いのかわからず、混乱させてしまうかもしれません。だったらすべてのブラウザがすべての HTML5 の機能をサポートするまで待った方が賢明じゃないか、そのように考えてしまうかもしれません。

でも待つ必要はありません!Contact Form 7 にはもっとましな解決策があります。Contact Form 7 は datenumber 両入力フィールドのために jQuery UI ベースのフォールバック機能を提供することができます。これを利用することで、Firefox でも Internet Explorer でも、date フィールドにはカレンダーの UI を、number フィールドにはスピンボックスの UI を、それぞれ提供することができるようになります。

デフォルトではこのフォールバック機能は無効化されています。この機能は追加の JavaScript と CSS をロードしますし(パフォーマンス低下要因)、datenumber 入力フィールドを使わないウェブサイトではそもそも必要がないためです。もし datenumber の入力フィールドを使っていて、この jQuery UI ベースのフォールバック機能を使いたい場合は、次のコードをテーマの functions.php ファイルに追加して機能を有効化してください:

関連項目: 必要な場合だけ JavaScript とスタイルシートをロードさせるには

メールアドレス入力項目の見栄えが他のテキスト入力項目と違うのですがなぜですか?

HTML5 ではメールアドレス入力項目は <input type="email" /> と表現されるのに対し、通常のテキスト入力項目は <input type="text" /> と表現されます。このように ‘type’ 属性の値に違いがあります。

お使いのテーマの CSS スタイルシートの内容を精査すると、中に 属性セレクタ を使用している箇所が見つかると思います:

この ‘input[type=”text”]’ というセレクタは、タイプが ‘text’ ではないメールアドレス入力項目にはマッチしません。このスタイルルールをメールアドレス項目にも適用させたい場合は、次のようにセレクタを追加します:

関連項目: コンタクトフォームのスタイル指定

form 要素に id や class 属性を追加できますか?

はい。[contact-form-7] のショートコードに html_idhtml_class の属性を追加することで form に任意の id と class を追加できます。

例:

[contact-form-7 id="1234" title="Contact form 1" html_id="contact-form-1234" html_class="form contact-form"]

フォームに入力項目を追加できません。入力項目ではなくフォームタグのコードが表示されます。

フォームタグが正しい構文で記述されていることを確かめましょう。よく見られるミスはフォームタグ部品の順序の間違いです。特に、オプションより前に置かれる間違いがよく見られます。

id オプションを設定したのに期待通りに機能しません。HTML に id 属性が現れません。

id HTML 属性値は文書全体で一意でなければならないことに注意してください。同一の id 値を複数の要素が共有する状態は HTML として正しくなく、ブラウザー上での予期しない挙動につながる恐れがあります。同一の id 値がページ上ですでに使用されていることが検知された場合、Contact Form 7 は id オプションの指定を無視します。

コンタクトフォームのデータをエクスポートやインポートすることはできますか?

Contact Form 7 はコンタクトフォームのデータをカスタム投稿 (投稿タイプ: wpcf7_contact_form) として保存するので、WordPress 管理画面のツール > エクスポートツール > インポートからそれらをエクスポート、インポートすることが可能です。

エクスポートのメニューでは「コンタクトフォーム」を選ぶとコンタクトフォームのデータだけをエクスポートできます。「すべてのコンテンツ」を選んでも構いません(この場合コンタクトフォームのデータも含まれます)。

入力フィールドにラベルを付けられますか?

はい。フォームテンプレートの中では任意の HTML マークアップを使うことができます。次のように label 要素を使ってみてください:

<label>
	Your Name
	[text* your-name]
</label>

ラベルとフォームタグを分離することもできます。この場合には、label 要素に for 属性を追加する必要があります。ここで for 属性の値は関連付けられるフォームタグの id オプションの値を参照します:

<label for="namefield">Your Name</label>

[text* your-name id:namefield]

チェックボックスやラジオボタンをラベル付けする場合には注意してください。label 要素に複数のフォーム構成要素を含めることはできません。

例えば、次のようにはできません(この [checkbox] が3つのチェックボックスに展開されるため):

<label>
	Your Country
	[checkbox your-country "China" "India" "San Marino"]
</label>

この場合は代わりに use_label_element を使います:

[checkbox your-country use_label_element "China" "India" "San Marino"]

Contact Form 7 のデフォルトのフォームテンプレートでは label 要素が使われていません。これは、以前は使われていたのですが、label 要素の使い方を間違えて理解してしまったユーザーからあまりにも多くの「バグレポート」が送られてきて収拾がつかなくなったので今の形になりました。

Contact Form 7: Accessible Defaults という別のプラグインを追加でインストールすることで label 要素を含んだデフォルトのフォームテンプレートが得られるようになります。

JavaScript が無効化されたページでもコンタクトフォームは使えますか?

はい。Contact Form 7 は JavaScript が使えても使えなくても機能するように設計されています。ただし、Ajax フォーム送信やその他一部の機能は JavaScript を必要とするので機能しません。

JavaScript が必要な機能は以下のとおり:

  • Ajax フォーム送信
  • jQuery UI を使った HTML5 フォールバック
  • 排他的チェックボックス
  • リアルタイムの文字数カウント
  • URL 入力の自動補完
  • DOM イベント

私のサイトでは REST API が無効化されています。Contact Form 7 を使うことはできますか?

Contact Form 7 4.8 以降のバージョンでは Ajax フォーム送信に WordPress REST API を利用します。あなたのサイトで REST API が利用可能でない場合は、Ajax フォーム送信を使うのはあきらめてください。非 Ajax のフォーム送信は引き続き利用可能です。Ajax フォーム送信を無効化して非 Ajax のフォーム送信を使うには、あなたのサイトのページ上での JavaScript のロードを停止してください。

その前に REST API を無効化したことを考え直した方がいいかもしれませんね。REST API はこれからの WordPress の根幹をなす機能の一つです。過去にセキュリティ関連の問題が報告されましたがすべて解決済みです。REST API を有効に戻すことを考えてみてください。

送信後、コンタクトフォームが #wpcf7-f123-o1 のような見慣れないコードが後ろについた URL にリダイレクトするのですが、なぜですか?

これはあなたのコンタクトフォームが非 AJAX 送信モードで動作しているためです。下記の記事にコンタクトフォームが AJAX 送信モードで動作しない理由が説明されています。

DOM イベントが機能しません。

まず、DOM イベントが正常に発火されていることを確認しましょう。イベントが発火されなければそのイベントハンドラー関数も実行されません。

wpcf7mailsentwpcf7submit のような Contact Form 7 の DOM イベントは AJAX フォーム送信の過程で発火されます。ですから、あなたのコンタクトフォームが非 AJAX 送信モードで動いている場合には、それらのイベントはどれも発火されないことになります。

また、あなたの JavaScript コードにバグがある場合もイベントハンドラー関数は機能しないでしょう。ブラウザに組み込まれているウェブ開発者ツール類を使って JavaScript のエラーを検出できます。

Contact Form 7 は GDPR に準拠していますか?

「はい」とあっさり答えられたらいいと思いますけど、残念ながらそんなに単純な話ではありません。結局のところ WordPress プラグインそれ自体には法令遵守を保証する能力などありませんし、あなたのコンタクトフォームを法令に準拠させる責任はユーザーであるあなたにあります。

私たちにできるのはアドバイスによる手助けに限られます。コンタクトフォームをプライバシーフレンドリーにする方法について書いているのでこちらを参考にしてください。

https://contactform7.com/2018/04/16/how-to-make-privacy-friendly-contact-forms/

Contact Form 7 は私たちの個人データを追跡したりそのデータを外部のサーバーに転送したりしますか?

いいえ。Contact Form 7 はそのような邪悪なことを絶対にしません。WordPress.org プラグインディレクトリのガイドラインでは、明確な同意を得ずにユーザーを追跡することが禁止されています。

コンタクトフォームからスパムのメッセージが届きます。どうすれば防げますか?

Contact Form 7 が提供するアンチスパム機能でコンタクトフォームを守りましょう。

Contact Form 7 は Akismet によるスパムフィルタリングをサポートします。賢い reCAPTCHA は鬱陶しいスパムボットをブロックしてくれます。さらにコメントブラックリストを使えば、指定したキーワードを含むか指定した IP アドレスから送られてきたメッセージを排除できます。

以前のバージョンのプラグインを入手できますか?

はい、このプラグインの以前のバージョンは WordPress.org からダウンロードできます。ですが注意してください。プラグインの古いバージョンを本番環境のウェブサイトで使うことは決して推奨されません。サイトをセキュリティリスクにさらすことになるからです。

古いプラグインを使うというのは世界中の悪意ある攻撃者に向かって「皆さんを歓迎します! このサイトはセキュリティにまったく関心のない管理者が運営しています!」と大声で呼ばわるのと同じようなことです。

WordPress のお問い合わせフォームプラグイン。シンプル、でも柔軟。