插件选择上,目前最主流的是Contact Form 7,免费、轻量、教程多,搜索量常年稳居WordPress表单类插件第一。另外WPForms也很不错,界面做得比较友好,拖拽操作,适合不太喜欢折腾代码的朋友,但完整功能要收费。还有一个Ninja Forms也有人用,功能比较全面。我个人日常用Contact Form 7比较多,虽然界面朴素了点,但稳定性确实好,而且对服务器资源消耗很小。
安装好Contact Form 7之后,后台会自动生成一个默认表单,包含姓名、邮箱、主题、内容这几个基本字段,对大多数网站来说够用了。你可以直接复制它生成的短代码,粘贴到你想放表单的页面里就行。不过有一步很多新手会漏掉,就是在表单设置里的"邮件"选项卡里,要检查一下"收件人"那栏填的是不是你自己的邮箱,默认是读取WordPress后台的管理员邮箱,如果你之前设置的是个测试邮箱,记得改过来。
然后说一个让很多人头疼的问题,就是表单提交之后邮件收不到。这个问题真的折磨过我好久。根本原因是WordPress自带的wp_mail函数走的是PHP Mail,而很多虚拟主机默认限制了这个发送方式,导致邮件要么发不出去,要么直接进了垃圾箱。解决方案是装一个SMTP插件,推荐WP Mail SMTP,把邮件发送方式改成SMTP协议,用你自己的邮箱服务器(比如Gmail、QQ邮箱或者企业邮箱)来发送。配置的时候要注意,Gmail现在需要用应用专用密码,不能直接用账户密码,这个去Google账号安全设置里生成一个就行。
关于垃圾表单防护,这个也是绕不开的话题。如果你的网站有一定流量,不做任何防护的话,用不了多久就会收到大量机器人提交的垃圾内容。Contact Form 7本身支持reCAPTCHA集成,去Google注册一下密钥,填到WordPress后台对应位置就能开启。不过reCAPTCHA有时候对真实用户体验不太友好,加载慢或者要反复验证。我后来换成了Honeypot方式,原理是在表单里加一个用户看不见但机器人会填写的隐藏字段,一旦这个字段被填了就判定为垃圾提交,对用户完全无感知,效果也还不错。