Contact Form 7 (日本語)

October 22, 2007

(このページの日本語版です)

概要

screenshot

Contact Form 7 はシンプルかつ柔軟なコンタクトフォームを提供する WordPress プラグインです。

  • 複数のコンタクトフォームを管理できます。
  • フォームとメールの内容を簡単なマークアップでカスタマイズできます。
  • jQuery Form Plugin による AJAX の動的送信が可能。
  • Akismet によるスパムフィルタリングをサポート。
  • CAPTCHA によるボット防止をサポート。

WordPress 2.2 2.5 以降に対応。

ダウンロードとインストール

WordPress.org のプラグインディレクトリ から最新版をダウンロードしてください。

  1. contact-form-7 フォルダを /wp-content/plugins/ ディレクトリに丸ごとコピーします
  2. WordPress の ‘プラグイン’ メニューでプラグインの有効化を行います

使い方

  1. [オプション] – [Contact Form 7] [管理] – [Contact Form 7] を開く。

    Update: WordPress 2.7 以降でお使いの場合は [ツール] – [Contact Form 7] にあります。

  2. デフォルトの “Contact form 1″ を編集するか新規のコンタクトフォームを追加して編集後それを保存する。
  3. [contact-form ...] のコードをコピーして、コンタクトフォームを表示させたい投稿の本文にそれをペーストする。

FAQ

Contact Form 7 FAQ (日本語) を参照してください。

フォームとメールのカスタマイズ

Contact Form 7 では「タグ」をさまざまなフィールドで使用します。タグというのは角カッコ [] で囲まれた定まった形式の文字列のことです。

フォームの内容の中で使われるタグは <input><textarea> などのフォーム要素に置換されます。

メールのテンプレートの中で使われるタグは、タグと同じ name を持つフォーム要素のユーザ入力値に置換されます。

wpcf7-desc

上の図を例に説明すると、フォームの内容に挿入された [textarea your-message ...] というタグは name="your-message" の属性を備えた <textarea> 要素で置換されます。

訪問者がこのフォームに入力して送信すると、Contact Form 7 はメールのテンプレートをもとにメールの生成を行います。メールのメッセージ本文に [your-message] タグが使われているので、このタグの部分がユーザの入力したメッセージによって置換されます。


フォームの内容で使えるタグ

フォームの内容では以下の種類のタグが使えます。

タイプ 置き換わる HTML 入力値の検証
text <input type="text" /> どんなテキストでも可
text* <input type="text" /> どんなテキストでも可 / 必須入力
email <input type="text" /> メールアドレス
email* <input type="text" /> メールアドレス / 必須入力
textarea <textarea> </textarea> どんなテキストでも可
textarea* <textarea> </textarea> どんなテキストでも可 / 必須入力
select <select> </select>
select+ <select> </select>
checkbox <input type="checkbox" /> ...
checkbox+ <input type="checkbox" /> ...
radio <input type="radio" /> ...
captchac <img /> CAPTCHA
How to use CAPTCHA 参照
captchar <input type="text" />
submit <input type="submit" />

タグの構文はそんなに簡単ではありませんが、フォーム テキストエリアの下にある タグを作成 メニューで構文を知らなくてもタグを作成することができます。

いくつかタグの使用例を紹介します。

  • [text your-name 40/100 "John Smith"]

    This tag is replaced with:
    <input type="text" name="your-name" size="40" maxlength="100" value="John Smith" />

  • [email* your-email 60/ id:email]

    <input type="text" name="your-email" id="email" size="60" />

  • [textarea your-message 80x15 "Write message here."]

    <textarea name="your-message" cols="80" rows="15">Write message here.</textarea>

  • [select your-country "China" "India" "other"]
    <select name="your-country">
      <option value="China">China</option>
      <option value="India">India</option>
      <option value="other">other</option>
    </select>


Contact Form 7 で Akismet を使うには

1. Akismet プラグイン が必要です。もしまだ有効化していないなら、まずはじめにそれを有効化します。
2. Contact Form 7 の管理ページを開き、フォーム の項目を以下の要領で編集します:

  • 送信者の名前の入力を要求する項目のタグに akismet:author オプションを追加する。
    例: [text* your-name akismet:author]
  • 送信者のメールアドレスの入力を要求する項目のタグに akismet:author_email オプションを追加する。
    例: [email* your-email akismet:author_email]
  • 送信者の URL の入力を要求する項目のタグに akismet:author_url オプションを追加する。
    例: [text your-url akismet:author_url]

Akismet プラグインが有効化されていて、かつ少なくとも1つの akismet: オプションが使われていれば、Contact Form 7 は送信者の入力内容すべてとそのほか入力行動に関係した情報を Akismet のサーバに送ります。Akismet はそれを見てスパムの疑いがあるか判断します。

Akismet がスパムと判断すると、Contact Form 7 はメールの送信を中止し、オレンジ色のボーダーラインがついた応答メッセージ(下の画像のうちの3番目)を画面に表示します。

スパムフィルタリングが正しく機能しているか確かめたい場合は、送信者の名前の項目に “viagra-test-123″ と入力してみてください。これはかならずスパムと判断されるはずです。

Changelog

0.9 (2007/04/30)
最初のリリース。
1.0 (2007/05/20)
タグ作成ツール導入。
1.1 (2007/08/02)
ディレクトリとファイルの再構成。
1.2 (2007/08/16)
jQuery Form Plugin を導入。
1.3 (2007/08/26)
[select] タグを導入。
1.3.1 (2007/08/26)
JavaScript のローディングに関する重大なバグを修正。
1.3.2 (2007/09/03)
jQuery まわりのバグを修正。
1.4 (2007/09/07)
Akismet スパムフィルタの導入。
1.4.1 (2007/09/11)
スペイン語とカタルーニャ語の言語ファイルを追加。
1.4.2 (2007/09/13)
ドイツ語の言語ファイルを追加。
1.4.3 (2007/09/15)
ポーランド語の言語ファイルを追加。
1.4.4 (2007/09/17)
フランス語の言語ファイルを追加。
1.5 (2007/10/07)
CAPTCHA を導入。
1.6 (2007/10/17)
メール (2) と管理ページのインタフェイス改善。
1.6.1 (2007/10/27)
サイドバーウィジェットをサポート。
1.7 (2007/11/27)
[select+][checkbox][checkbox+][radio] タグを導入。
1.7.1 (2007/12/06)
グローバルな wpcf7 変数。ポーランド語言語ファイルのアップデート。
1.7.2 (2007/12/13)
バグフィックスとチェコ語言語ファイルの追加。
1.7.3 (2007/12/23)
default:label-first オプションの新規追加。
1.7.4 (2007/12/30)
select+checkbox+ タグタイプを廃止。multipleexclusive オプションを追加。
1.7.5 (2008/01/26)
二つの修正と include_blank オプション。
1.7.6 (2008/03/02)
acceptance タグを追加。

198 Responses to “Contact Form 7 (日本語)”

  1. Uribow Says:

    すいません。半分自己解決です。

    このドキュメントのはじめの方に「WordPress 2.2 以降に対応。」との記述があったので、てっきり使えると思っていました。最新版ダウンロードのところには、

    Requires WordPress Version: 2.5 or higher

    の記述がありました。利用しているWPのバージョンとの適合性が無いということで、残念です。

    contact-form-7の旧バージョンをWP2.3.1で使えるのかどうか、ダウンロード先を含めてご教示ください。よろしくお願いします。

  2. miyoshi Says:

    Uribow さん、ご指摘いただいてありがとうございました。古い記述のところは修正しました。

    v1.8.x までなら WordPress 2.2 以上に対応しています。以前のバージョンはこちらからダウンロードできます


  3. [...] つーわけでかわりに設置してみました。Contact Form 7 カスタマイズ可能なメールフォームプラグインです。 [...]

  4. ケンケン Says:

    はじめまして。

    ありがたく利用させて頂いております。
    しかし、送信完了画面が表示されず困っています。
    (http://○○.com/○○/#wpcf7-f1-p350-o1)というURLになってしまいます。

    上記同様の相談(January 25, 2008 at 7:33 pm)に対して「たぶんうまく行かない方は wp_head() の呼び出しが抜けているんだろうと推測してます。」と回答されていますが、私はテンプレ自体を一から自分で作成しているため、header.phpというファイルがありません。

    index.phpの内に、JavaScript絡みの何らかの記述を入れれば解決するのでしょうか。

    現在のindex.phpの冒頭の記述は下記の通りです。もし何かおわかりでしたらご教授いただけますと幸いです。どうぞよろしくお願いいたします。

    <meta http-equiv="Content-Type" content=";charset=” />

    <link rel="stylesheet" href="” type=”text/css” />
    <link rel="alternate" type="application/rss+xml" title="RSSフィード" href="” />

  5. miyoshi Says:

    ケンケンさん、テーマの作り方は他のサイトや書籍で詳しく説明されているのでそちらをご参照ください。とりあえずデフォルトのテーマと見比べて header.php を作ってみてはどうでしょうか。

  6. ケンケン Says:

    返信ありがとうございます。
    場違いな質問で大変失礼致しました。頑張ってみます!

  7. iwadon Says:

    初めまして。
    素晴らしいプラグインをありがとうございます。

    実は、フォームもデフォルトのまま使用していましてそこから「送信」
    をすると
    「あなたのメッセージは送信されました。ありがとうございました。」
    と表示されて完了するのですがメールが送られてきません。

    WordPress 2.7
    Contact Form 1.9.2

    上記で[ツール]-[Contact Form 7]のメールの宛先で指定するメールアドレスを gmail,dti とそれぞれ指定してみましたがどちらも同様の状況です。

    特にエラーが出ている様子もないですし、どこを確認すべきかわかりません。

    サーバ側で必要な機能があるとか、WordPressの設定とかあるでしょうか。

    何かしらご教授いただければと思います。
    よろしくお願いします。

  8. iwadon Says:

    お世話になっております。
    度々すみません。

    あらためてサイトを構築しているサーバの仕様を確認しましたところ
    メール送信に制限をかけていることがわかりました。

    sendmeil や php,CGI によるメール送信もできない仕様のようです。

    大変お騒がせしました。

  9. mori Says:

    はじめまして。
    素晴らしいプラグインありがとうございます。
    どこにも項目がなかったので質問させていただきます。

    現在、別々のページに2つフォームを設置しています。
    フォームの内容以外でページに違いはありません。

    1つはほとんど初期フォーマットのままのフォームで
    iso-2022-JPでメールが送られてきます。
    こちらに問題は全くありません。

    もう1つは50くらい入力が必要なフォームで
    utf-8でメールが送られてきます。
    ただし、メールの本文最初にある
    ”差出人”・”件名”・”宛先”だけが
    JISになっているようです。

    wp-mail.phpの仕様なのかもしれないのですが、
    できることであればiso-2022-JPで
    統一させることはContact Form7側から
    できないのでしょうか?

    よろしくお願いいたします。

  10. mori Says:

    自己解決いたしました。

    よく調べずに質問してしまい
    大変失礼いたしました。

    WP Multibyte Patchの仕様だったようで
    configファイルでメールの送信方法を
    autoからjisに変えることで解決しました。


  11. [...] Contact Form 7 コンタクトフォームならこちら。 [...]

  12. kaitaro Says:

    初めまして。
    素晴しいプラグインを公開して頂きありがとうございます。

    万策つきましたので質問させて頂きます。

    当方の設置環境は、
    wordpress2.7
    contact form1.9.2

    「ファイル添付がどうしても上手く行きません。」

    エラーメッセージは、「ファイルのアップロードに失敗しました。」と表示されます。
    ファイルを添付せずに送信する事は正常に出来ます。

    当該の設置サイトの他に、別のレンタルサーバー上の異なるサイトに設けたフォームがあります。
    こちらのフォームからは、正常に添付ファイルも送信する事が出来ます。

    サーバー側の何かしらの設定が起因していると思われますが・・・・・
    サーバー会社へ問合せしたいと思いますが、エラーの原因と推測されるヒントでもご教授願えますでしょうか。

    宜しくお願いします。


  13. [...] で、別にページつくってリンク貼ろうかと思ってた矢先に見つけたプラグイン Contact Form 7。これ!求めていたのはこれ! [...]

  14. だいすけ Says:

    wordpress2.7
    contact form1.9.2
    早速使わせて頂こうとダウンロードしました。
    しかしデフォルトのコードを本文にコピーしましたが。。。

    お名前 (必須)
    [text* your-name]

    メールアドレス (必須)
    [email* your-email]

    題名
    [text your-subject]

    メッセージ本文
    [textarea your-message]

    [submit "送信"]

    という風に出力され、ショートコードが認識されていないようです。
    お手数ですが、対処法を教えていただければと思います。
    よろしくお願いします。

  15. MOO@BeLive Says:

    質問ですが
    携帯などAJAXが使えないサイトでの利用はできますか?
    パソコンのブラウザだけでなく、携帯からも利用したいのですが、AJAXでの送信のため携帯から送れないようですが、何か切り替える方法がありますか?
    だいぶ以前のバージョンだと、そのままフォーム送信していた用に思っていたのですが…

  16. miyoshi Says:

    MOO@BeLive さん、Ajax が使えない環境では普通に Ajax を使わずに送信するはずです。

  17. pac Says:

    はじめまして。
    とても使いやすいプラグインをありがとう御座います。

    質問なんですが、メールが届いた時に返信しようと思うのですが「表示名」は送信者のアドレスになっているのですが「電子メールアドレス」がwordpress@***ne.jpのようになってしまい、返信できません。

    解決方法が分からず悩んでおります。
    お手数ですが、対処法方を教えていただけ無いでしょうか。
    よろしくお願いいたします。

  18. miyoshi Says:

    pac さん、メールの From フィールドが正しい書式になっていない場合に WordPress がメールアドレスを置き換えるとそのようになります。From の書式をご確認ください。

  19. pac Says:

    ご回答ありがとう御座いました。
    ご指摘どおりFrom の書式を間違えておりました。
    初歩的なミスですみません。
    ありがとう御座いました。

  20. poem Says:

    はじめまして。とんちんかんな質問だったらお許しください。worpress2.7で作業しています。contact form 7(1.9.2)で作った問い合わせフォームのタグなのですが、「投稿の本文」中ではなく、「single.php」に置くと動作しないんでしょうか? 「page.php」では(別のフォームですが)何の問題もなく動作しているのですが。single.phpではカスタムフィールドをたくさん使っていて、投稿の本文と離れたところにレイアウトしたいのです。ちなみにカスタムフィールドに問い合わせフォームのフィールドを作ってその中にタグを入れてレイアウトしてもダメでした。今はそのままタグが[contact-form * "******"]と表示される状態です。

  21. miyoshi Says:

    poem さん、single.php のテンプレート内にタグを置いても動作しません。指示書きのとおり、投稿、ページの本文中またはテキストウィジェット内に置いてください。

    一応、参考までに書いておくと、裏技使ってテンプレート内に埋め込めるようにしている人もいます。ただし動作の保証はできかねます。

  22. poem Says:

    miyoshiさん

    わざわざお返事ありがとうございます。参考も試してみます。

  23. よろず屋 Says:

    いつもお世話になっております。
    最新の 1.9.3 を使っています。

    差出人に [email] と書いたところ、Fromが
    「入力アドレス <wordpress@…>」
    になってしまいました。
    <[email]>も試してみましたが、NGで、
    「<入力アドレス <wordpress@…>」
    となりました。。。

    差出人は必ず「名前」の書式でないといけないのでしょうか?
    メールアドレスだけを送信者にすることは出来ませんか?

  24. alibow Says:

    たいへんに使いやすいプラグインをありがとうございます。
    フォームの見た目のカスタマイズも簡単で、とても重宝しています。

    一点質問(もしくは要望)がございます。
    [wpcf7.remote_ip]のタグ同様に、Submitされた日時を取得することはできませんでしょうか。

  25. miyoshi Says:

    よろず屋さん、メールアドレスだけで問題なく送れるはずです。メールアドレスの記法が正しくないか、あるいは他にメールを操作するプラグインを動作させていませんか。

  26. miyoshi Says:

    alibow さん、そういう機能はサポートされていません。メールの送信日付を見ればわかるのではないでしょうか。

  27. alibow Says:

    早々のご回答をありがとうございます。
    おっしゃられる通り、受信したメールで日時はわかるのですが、contact form7で取得した各データを[your-name];[e-mail];[message]とカンマ区切りにして、データベースに移しやすい形式にして使用させていただいておりますので、このデータ中に送信日時も加えて取得できたら便利だなと思った次第です。
    他の方法を考えてみます。どうもありがとうございました。

  28. よろず屋 Says:

    ご回答ありがとうございます。
    複数のサイトで試しましたが、メール関連はこのプラグインだけです。10くらいプラグインを稼働させているので干渉しているのかもしれませんが・・・
    結局「”" <メールアドレス>」と書いたら正常に送信でき、着信したメールのFromはメールアドレスだけで届きました。
    ハッキリ原因が分かるまではこの方法で対応したいと思います。


  29. [...] フォームのプラグインは沢山あったのだけれど、日本語環境で評判のよいContact Form 7を使いました。 [...]


  30. [...] 1:http://ideasilo.wordpress.com/2007/10/22/contact-form-7-in-japanese/ 上記のURLからプラグインをダウンロードします。 [...]


  31. [...] Contact Form 7 シンプルかつ柔軟なコンタクトフォームを提供する WordPress プラグインです。 複数のコンタクトフォームを管理でき、フォームとメールの内容を簡単なマークアップでカスタマイズできます。 [...]

  32. sonet Says:

    お忙しいところ失礼致します。
    アンケートフォーム代わりにcontactform7を使わせていただきました。
    ラジオボタンやチェックボタンなどを使おうと、ツール画面からタグを作成し、そこからコピーしたものをフォームへペーストして保存をし、画面上では反映されているのですが、いざテストとして入力をしてもメールで返ってくるのは最初から設定されてあったテキストエリア部分だけで、後から設定したものは反映されませんでした。
    FAQを見たのですが、メール欄への記述の仕方や、なにを記入していいのかがそもそもわかりませんでした。
    申し訳ないのですが、やり方を教えていただけないでしょうか。

    例えば以下のようなタグを反映させるには、ということなのですが。
    [checkbox checkbox-921 id:title

    それとドロップダウンメニューで、複数選択も反映されませんでした。自分はハッスルサーバーというところで、独自にドメインを取得しています。

  33. sonet Says:

    すいません、自己解決できました。
    下のメールを弄ればよかったんですね。
    素晴らしいプラグインをありがとうございます。

  34. アロエドリンク Says:

    ContactForm7、使わせてもらっています。

    WP2.7.1 + ContactForm7 1.9.5.1を利用しています。

    公開サーバーとローカルマシン間でmysqldumpを使ってwp-config.phpで指定するデータベース内のテーブルを同期させているのですが、サーバーからダンプしたデータをローカルマシンに流し込むと、ContactFormで作成したフォームが全て消えてしまいます。
    (ダッシュボードの「ツール」から「Contact Form 7」を選ぶと、真っ白で「新規追加」のリンクしか表示されない)

    公開サーバーで使っているDBはFreeBSD上のMySQL5.0.77で、ローカルマシンではWindows2003サーバー上のMySQL5.0.77です。

    お手数ですが、原因を教えてもらえませんでしょうか?


  35. [...] メールを使わず管理人に連絡する「メールフォーム」。 WPには”Contact Form7”という簡単設置、開発者が日本人!というプラグインがあります・・・!(有名なプラグインです♪)    ですが。。。このプラグイン、SiteMixでは使用できないようなのです。 多分データベース云々かんぬんの部分が引っかかってくるようで、素人にはお手上げ~(泣) 他のSiteMixを使用している方のサイトを拝見してもこのプラグインは使用せず、他のレンタルフォームを使用しているようなので、難しいのでしょう・・・。 [...]

  36. yasu Says:

    ContactForm7、使わせてもらっています。

    WP2.7 + ContactForm7 1.9.2を利用しています。

    サーバーを移転したら、使用できなくなってしまいました。
    赤枠が表示されてメール送信に失敗します。

    以前のサーバーはPHP 4.xでしたが、今回は5.2.9です。
    WordPressはphpMyAdminで移動しました。

    原因わからないでしょうか?

    よろしくお願いします。

  37. vernisaj Says:

    ラジオボタンやチェックボタンなどを使おうと、ツール画面からタグを作成し、そこからコピーしたものをフォームへペーストして保存をし、画面上では反映されているのですが、いざテストとして入力をしてもメールで返ってくるのは最初から設定されてあったテキストエリア部分だけで、後から設定したものは反映されません。

    どうすれば、反映されるのでしょうか。

    同じ質問が、sonetさんによって、April 25, 2009 at 2:00 amにあるのですが、答えが見当たりませんでした。どなたか、教えていただけないでしょうか。

  38. vernisaj Says:

    どうも、ありがとうございました。解決しました!感謝!

  39. tadatabi Says:

    >ダッシュボードの「ツール」から「Contact Form 7」を
    >選ぶと、真っ白で「新規追加」のリンクしか表示されない

    という書き込みがありましたが、私も同様の症状で悩まされています。ただし、普通にインストールして有効化しただけで、特殊なことはしていません。

    他のプラグインは普通に動いています。原因として、どんなことが考えられるでしょうか。

  40. しむ Says:

    はじめまして。
    利用させていただいています。
    質問なのですが
    submitボタンをcssで画像に変えたいのですが
    submitボタンにidやclassを指定する事は可能でしょうか?

  41. Kaze Says:

    初めまして。
    質問です。

    携帯からの送信で文字化けが発生しています。
    現在、携帯での閲覧には
    Ktai Style 1.45と言うプラグインを利用していますが、
    何か干渉しているのでしょうか?
    http://wppluginsj.sourceforge.jp/ktai_style/
    もし、対応策がわかるようでしたら、ご教授下さい。

  42. miyoshi Says:

    Kaze さん、何かが干渉しているのではなく、WordPress で標準的に使われている文字コード(UTF-8)と、日本の携帯電話のメールで使われている文字コード(Shift-JIS? 詳しくは知りません)が異なっているのが原因と思われます。今のところ思いつく対応策がありませんが、何らかの文字コード変換が必要と思います。

  43. tyki Says:

    はじめまして。WPで使用できて、細かなカスタマイズもできるメールフォームをずっと探していたのでこちらのプラグインは大変ありがたく使わせていただいております。

    ただ、下記の件で悩んでいるので対処策がありましたらお教えください。
    「特定のメアドに送信すると届かない」現象がありメールサーバの運営会社に問い合わせたところ、スパムの設定で「メールヘッダのSubjectで、iso-2002-jp以外のものは英文スパムとして扱っている」という回答がありました。(contact form7から送ったメールは当然ながらutf-8)
     現在は他のメールに送信することで対処していますが、他に対処策がありますでしょうか。
     宜しくお願いします。

  44. shota Says:

    初めまして。素晴らしいプラグインをご提供いただき、いつも感謝しております。

    さて、WordPress2.8にContact Form 7 1.10.0.1を導入したところ、フォームがAjaxで送信されなくなってしまいました。

    テンプレート上ではwp_head()を呼んでいますのでcontact-form-7/stylesheet.cssなどは記述があるのですが
    jquery.form.jsやcontact-form-7.jsを呼び出す記述がどうも出力されないようです。

    定数WPCF7_LOAD_JSはvar_dumpしたところbool(true)でした。(テンプレート上でvar_dumpしたので実際は違うのかもしれませんが、特にwp-config.phpに記述をしてないのでデフォルトのtrueだと思います。)

    wpcf7_enqueue_scripts()が上手く動いていないのかとも思いましたが
    詳細はよくわかりませんでした。

    何か思い当たる点などはありますでしょうか。
    宜しくお願い致します。

  45. よろず屋 Says:

    1.10.0.1 へのバージョンアップで、これまで要望していたほとんどを解決することが出来ました。
    ありがとうございます。

    もう1点だけ、ユーザビリティの部分で要望があります。

    複数のフォームを作れますが、現在どれを選んでいるのかが一番上の小さい文字を見ないといけないため、4つくらい作るとちょくちょく間違えて更新したりしてしまっています。

    現在どのフォームを編集しているのか、分かりやすいようにしてもらえるとうれしいです。
    例えば、「フォーム」とか「メール」のタイトル部分の右が空いているので、ここに現在選択しているフォームの名前を表示する、という程度でも良いと思っています。

    ご検討のほどよろしくお願い致します。


Leave a Reply