This post is no longer updated. Move to Contact Form 7 official site.
Download | Plugin Homepage | FAQ | Support Forum
Summary
![]()
Just another contact form plugin. Simple but flexible.
- Supports multiple contact forms.
- You can customize form and mail contents with simple markup.
- AJAX submitting with jQuery Form Plugin.
- Spam filtering with Akismet.
- Bot prevention with CAPTCHA.
Download and Install
Download the latest release from WordPress.org plugin directory.
- Upload whole contact-form-7 folder to the /wp-content/plugins/ directory
- Activate the plugin through the ‘Plugins’ menu in WordPress
Usage
- Open admin page
[Options] – [Contact Form 7][Manage] – [Contact Form 7].Update: If you are using WordPress 2.7 or greater, you can find the admin page under [Tools] – [Contact Form 7].
- Edit default “Contact form 1” or add new and save it.
- Copy
[contact-form ...]code and paste it into the content of any posts you need the contact form.
FAQ
How to customize form and mail contents
You can use “tags” in several fields. Contact Form 7’s “tag” is formed string enclosed in square brackets [].
A tag used in form content is replaced by HTML form control element like <input> or <textarea>.
A tag used in mail template is replaced by user input of element with the same name.

In this picture, a tag [textarea your-message ...] inserted in form content is replaced by <textarea> tag with name="your-message" attribute.
When a visitor input into this <textarea> field and submit, Contact Form 7 generates a mail based on mail template. Since message body field has [your-message] tag, this tag replaced by the user input message.
Tags in form content
You can use the following types of tags in form content.
| Type | Replaced by | Validated as |
|---|---|---|
| text | <input type="text" /> |
Any text |
| text* | <input type="text" /> |
Any text / Required |
<input type="text" /> |
Email address | |
| email* | <input type="text" /> |
Email address / Required |
| textarea | <textarea> </textarea> |
Any text |
| textarea* | <textarea> </textarea> |
Any text / Required |
| select | <select> </select> |
— |
<select> </select> |
— | |
| checkbox | <input type="checkbox" /> ... |
— |
<input type="checkbox" /> ... |
— | |
| radio | <input type="radio" /> ... |
— |
| captchac | <img /> |
CAPTCHA See How to use CAPTCHA |
| captchar | <input type="text" /> |
|
| submit | <input type="submit" /> |
— |

The syntax of tag is not so easy. You can use Generate Tag menu under Form textarea to make a tag you need.
I show you some examples of tags.
[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>
I wrote about tag syntax.
How to use Akismet on Contact Form 7
1. You need Akismet plugin. If you have not activated it yet, activate it first.
2. Open Contact Form 7’s admin page and edit Form text area as:
- Add
akismet:authoroption to the tag of field which requires sender’s name.
Example:[text* your-name akismet:author] - Add
akismet:author_emailoption to the tag of field which requires sender’s email address.
Example:[email* your-email akismet:author_email] - Add
akismet:author_urloption to the tag of field which requires sender’s URL.
Example:[text your-url akismet:author_url]
Once you have activated the Akismet plugin and at least one of the akismet: options is set, Contact Form 7 will send all of a sender’s input as well as any other information related to input activity to the Akismet server. Akismet will then judge whether this input is likely to be spam.
When Akismet judges a message as spam, Contact Form 7 sends no mail and shows a response message with an orange border line (the third example in the picture below).

To make sure the spam filtering is working, send a message with “viagra-test-123” as the sender’s name. If the test is a success, the message will be judged as spam.
Changelog
- 0.9 (2007/04/30)
- Initial release.
- 1.0 (2007/05/20)
- Tag helper.
- 1.1 (2007/08/02)
- File restructuring.
- 1.2 (2007/08/16)
- jQuery Form Plugin introduced.
- 1.3 (2007/08/26)
-
New tag type:
[select] - 1.3.1 (2007/08/26)
- Critical bug about JavaScript loading fixed.
- 1.3.2 (2007/09/03)
- Bug fix around jQuery.
- 1.4 (2007/09/07)
- Akismet spam filtering introduced.
- 1.4.1 (2007/09/11)
- Add Spanish and Catalan translations.
- 1.4.2 (2007/09/13)
- Add German translation.
- 1.4.3 (2007/09/15)
- Add Polish translation.
- 1.4.4 (2007/09/17)
- Add French translation.
- 1.5 (2007/10/07)
- CAPTCHA introduced.
- 1.6 (2007/10/17)
- Mail (2) and UI improvement for admin page.
- 1.6.1 (2007/10/27)
- Sidebar widget support.
- 1.7 (2007/11/27)
-
New tag type:
[select+],[checkbox],[checkbox+]and[radio] - 1.7.1 (2007/12/06)
- Made wpcf7 variable global. Polish translation updated.
- 1.7.2 (2007/12/13)
- Bugfix. Czech translation added.
- 1.7.3 (2007/12/23)
- New
default:andlabel-firstoptions added. - 1.7.4 (2007/12/30)
select+andcheckbox+tag types removed.multipleandexclusiveoptions added.- 1.7.5 (2008/01/26)
- Two fixes and
include_blankoption. - 1.7.6 (2008/03/02)
- New
acceptancetag added.
1,401 replies on “Contact Form 7”
George,
You cannot call or link to this contact form without using a page or post. It is needed to be embedded in the content area of a page or post.
Hi,
is it possible to put the function-data out of the website into the functions.php ?
cheers
Denis
Denis,
Can you tell me more specific?
You mean including this plugin’s contact form into a theme?
とても簡単・便利なプラグインなので有り難く使わせて戴いております。
javascript・cssがすべてのページのヘッダに自動挿入されていますが、これを実際にフォームを設置したページにのみ挿入するようになってくれるとありがたいです。
自動で挿入するか否かを判断してくれるのがベストですが、たとえば管理画面からページidを指定して、指定されたidのページにのみ挿入するなど…
既存のスクリプトと干渉してしまうので、現在はソースから自動挿入部分をさっくり削除して手動で挿入して使用しています。
ご検討下されば幸いです。
ひゅっくり さん、
コメントどうもありがとうございます。おっしゃるとおりで、いろいろと方法を検討しているんですがまだいい方法が思いつかないんです。シンプルな方法で自動で判断できるやり方があればすぐに取り入れるんですが…。
あと、既存のスクリプトとの干渉というのは、これはこれでまた別の解決が必要と思うので、よかったら詳しく教えてください。
Hello,
I really like your plugin, simple without all the extra stuf I need. But it seems when the form is filled out and sent, it shows a “sent successfully” message. But when I receive the message, it doesn’t show the message, but instead shows the [your-subject] and [your-message] tags in the email, no sender, no message. Did I miss a step? Please help,
Thank you
Nevermind, i fixed it, I changed the name of the text field and forgot to change the tag in the email format. One question though, is there a way to fix the apostraphes in the message? I get backslashes in my received messages when an apostraphe is used in the sent message. Is this a php thing?
rome,
Ah, it’s a bug. I’ll fix it in next release. Thanks for telling me!
I got so far as to build my contact form – and then realized it won’t work in a sidebar. Up until then I was really impressed with ease of use.
Any plans for putting it in a sidebar for a future release? Or hacks you can point me towards?
Keep up the good work.
Thanks.
George,
I don’t have a plan so far. But it seems that many people need sidebar option. I’ll consider it.
Thanks
@miyoshi
>>is it possible to put the function-data out of the website into the functions.php ?<<
When i put the Contact form into my page and look at the code there is a lot of code posted into my page. is it possible to put this code anywhere else, maybe into the functions.php ?
an other question, can i put php into the Form ? like IP adress and date like date(‘d.m.Y’)
cheers
denis
Denis,
No, unfortunately, all features you say are not supported. They are too complicated to implement in this simple plugin. But I’m considering to do [ip_addr] tag or such…
Thanks
@miyoshi
and what about putting the function code outside the page ?
and can you take a look, please: http://www.centerstage.de/mhq/kontakt/
why i the space between the button and the down border so big, looks like a double
IP and DATE is not so importent cause its mostly all in the email header.
cheers
denis
Denis,
1) It’s must be used in inside of content area of Post/Page. You can’t put it outside of them so far.
2) There are empty <div> element in the bottom, so there are spaces. You should add padding to the “.wpcf7” in CSS.
Thanks
Can you please take a look an the thumbnail i put into the page ?
http://www.centerstage.de/mhq/kontakt/
i cant find that piece of code. its not mine ;-)
You can find it just after closing </form>.
<div class="wpcf7-response-output"></div>Hi,
I’ve just instaled cf7 and it works great. Thanks for it. :)
But, sorry for dumb question, how to change the language? My language is supported (Polish) but I don’t know how to change it.
Tomek,
Thanks for your comment. You need to edit wp-config.php as
to use Polish localization. See Installing WordPress in Your Language on WordPress Codex.
Thanks for info. I’ve already used Polish language on my WP instalation, but localization file was named ‘pl.mo’ (and also WPLANG was set to ‘pl’ only). Now all works fine.
Thank you!
[…] Contact Form 7 1.4.4 […]
have installed version 7.1.4.4 and it appears activating Akimet in the form options is causing a send message fail.
without Akimet sending is successful
ideas?
[…] Contact Form 7 […]
@steve59: Yes, you’re right. When I active Akismet in the form options the message doesn’t send.
When I updated my Wp to 2.3 this plugin don’t worked!!
Hi,
Looks like a really nice plugin. I’m having problems with configuration. I tried out the sample you have put in for beginners. It worked fine. Tried to put in:
[select noget “windsufing” “surfing”]
The select option appears in my form on my test-site – I select – but in the email I receive there is no indication of my selection.
Any idea?
Thanks!
I figured it out – sorry!!
はじめまして。シンプルでわかり易く素晴らしいプラグインですね。
一つ質問があるのですが、[contact-form ...] のコードをコピーして、コンタクトフォームを表示させたい投稿の本文にそれをペーストする。とありますが、これをテンプレート内に直接記述する事はできますでしょうか。試しているのですが中々うまくいかず、可能であればご教授いただけると助かります。宜しくお願いいたします。
atfactory さん、
「テンプレート内に直接記述する」というのが具体的にどういうことを指しているのかちょっとよくわからなかったのですが…、すみませんが詳しく教えていただけますか?
早々にご返信いただきありがとうございます。説明が足りなくスミマセン。
現在投稿内容に[contact-form 1 "Contact form 1"]を記述して読み込みを行っているのですが、コメントフォームのような扱いでシングルページに常時同じフォームを設置したいと考えております。そこで、毎回投稿内容に記述するのも面倒なのでsingle.php内にこのコードを埋め込んで、読み込ませようと考えたのですがよくわからずコメントさせていただきました。お手数おかけしますが宜しくお願いいたします。
ああ、なるほど。テンプレートってテーマのテンプレートのことだったんですね。今のところそういった使い方はサポートしていません。ただ、ご要望のテーマファイルへの埋め込みや、サイドバーのウィジェットでの使用といったニーズが一定数あるようですので、将来的にはそういったものも考えてみたいとは思っています。他にまだやることが山ほど残っているのでだいぶ先にはなりますが。気長にお待ちください。
ありがとうございます。気長に待ちます(笑)
この度はお忙しい所、ご返答ありがとうございました。
best contact form plugin for wordpress so far! Just wondering if the tons of lines it adds to the source code in the header is necessary and maybe bad for SEO and Performance?
rucx,
Thanks. Maybe your suggestion is right. I’m thinking exclude them into a file. Thank you for good advice.
[…] : 2.0.7버전인데 WP 2.3에 대한 특별한 언급이 없다. Contact Form 7를 설치하였으나 별다른 문제가 없으면 WP-ContactForm을 계속 사용할 […]
Thanks! Best contact plugin ever!
so now its perfect!
Your awesome Miyoshi!
hello
nice contact form
all is doing good here but
when im trying to send myself a test mail
i dont receive the mail in my mailbox:(
here is the url for my contatc from
http://quebec-usa.com/contactez-nous/
jeffqc,
Didn’t you see a result message after you submited? If you saw “succeeded” message, mail was sent correctly, check your spam filter. If you saw “failed” one, it failed, something was wrong.
i get this message:
Your message was sent successfully. Thanks.
i dont have any spam filtrer and have try with several mail!
jeffqc,
It means that mail sending function has successfully completed. If you don’t receive a mail, mail servers or something were not working properly. Do you receive other mails form WordPress, such as comment notification?
Hello. Great plugin! Thank you for all your work!
I’m wondering if there is a way to filter out the several lines of code that the Contact Form plugin places into the HEAD section of the page for pages that are NOT using the contact form.
Other plugins allow filter of the code with something like
placed within conditional tags.Is anything similar possible with this plugin so all the Contact Form 7 related “head” tags do not show up on every other page in the site?
Mike,
Thanks for comment. The latest version is still harming? Just six lines it inserts.
I’m using this contact from in my blog, and now I’m free from spams.
thanks for this wonderful plugin. :)
Is there a way to prevent the WP-Contact form javascript file from being included in all the pages??
I installed your plugin but it hang ups when I try to send an email and it doesn’t send anything. I use wp 2.3, Unix server.
what should I do?
Vadim
Livingston Samuel,
Thanks for comment.
No, no such a way is supported.
Vadim,
The most posiible cause is a conflict with other plugins. You should deactivate all plugins and try them one by one.
[…] Contact Form 7 von Takayuki Miyoshi und […]
初めまして。設定が分かりやすく素晴らしいプラグインだと思います。
ただ、フォームを設置したページにSafariでアクセスして
送信ぼたんをクリックすると、
“あなたのメッセージは送信されました。ありがとうございました。”
と表示されるはずののメッセージが
入力内容ã«ä¸å‚™ãŒã‚りã¾ã™ã€‚確èªã—ã¦ã‚‚ã†ä¸€åº¦é€ä¿¡ã—ã¦ãã ã•ã„。
といった具合に文字化けしてしまいます。
その他のScriptで表示される部分も同様です。
Nippon 2プラグインも試したのですが効果は見られませんでした。
FirefoxやwinのIEだと文字化けしないようなのですが
対応策があれば教えてください。
初めまして。
本日インストールさせて頂いたのですが、実際にページを生成してみて、項目を入力して送信ボタンを押したところ、メールは送信されているのですが、画面上はページ遷移等はせず、送信ボタンの横で画像がぐるぐる回ったままの状態なのです。
完了画面や確認画面は無いような仕様なのでしょうか?
又、送信ボタンを押すとボタンの下のマージンがガクンと減るようなのですが、こちらも仕様なのでしょうか?
機能としてすごくすばらしいのでぜひ使わせて頂きたく、コメントさせて頂きました。
よろしくお願い致します。
Hello Miyoshi san and thank you very much for your hardwork.
I’ve installed this plugin in my site few days ago but when I send myself a test message, I receive nothing at all even though I do get a “your message has been successfully sent” message.
I’ve read the comments here and your instructions on how to install but didn’t find anything to help me through this problem.
May you help, please ?
Lillymon~
taro さん、
ご報告ありがとうございます。あいにく僕の手元に Mac がないのでテストができないんですが、思い当たる所があったので修正を行いました。今日リリースした 1.6.1 を試してみてください。もし直っていたらまたご連絡いただけると助かります。