将wordpress评论的邮箱改为选填
也许大家都有个习惯,就是在网站上留言的时候不喜欢留名,哪怕自己说的话会名垂青史.也许这是因为大家害怕被跨省追捕吧,所以还是不留名的好.
名都不想留,如果还要留邮箱,这就更强人所难了.
使用wordpress朋友也许会背离这个习惯,因为留下邮箱可以显示出自己的头像,留下网站可以增进交流.但如果对一个只是上网来看点东西,一时兴起想有感而发的普通网友来说,在你的站上留言还得写邮箱,他会立马失去80%的热情.
所以我就想把评论表单的邮箱设为选填项.起初我想在WP后台寻找这个选项,结果果然找到了.在”设置–讨论–其他评论设置”中取消评论作者必须填写姓名和电子邮件前的勾选即可.
但这样一来,用户就连名称都可以不填了.这样除了不容易分辨身份外,更有可能就是出现N多垃圾评论——留言不留名,多么直接的垃圾评论入口啊。
于是得想个办法,让用户名必填但邮箱可选填。上网搜索了一下,发现只有改代码。所幸的是并不复杂。
要修改的文件是WP根目录下的wp-comments-post.php,在其中找到:
if ( get_option('require_name_email') && !$user->ID ) {
if ( 6 > strlen($comment_author_email) || '' == $comment_author )
wp_die( __('Error: please fill the required fields (name, email).') );
elseif ( !is_email($comment_author_email))
wp_die( __('Error: please enter a valid email address.') );
}
至于代码讲解我就不说了,我只说该怎么改,把上面的代码用以下代码替换:
if ( get_option('require_name_email') && !$user->ID ) {
if ( '' == $comment_author )
wp_die( __('Error: please fill the required fields (name).') );
if ( "" != $comment_author_email) {
if ( !is_email($comment_author_email))
wp_die( __('Error: please enter a valid email address.') );
}
}
其中两个wp_die语句的单引号内是提示内容,你可以改成中文的,这样对用户更友好。但要注意编码问题。
如果想知道为什么要这么改,可访问前辈的文章:绿叶飘香
本文链接: http://www.jo2.org/archives/79.htm.转载请保留.





和我在PJblog社区里面回答的一个问题有异曲同工之妙
[围观]
[face:4][face:4][face:15]wp不懂。。
[围观]
十年灯 回复:
四月 11th, 2010 10:07
@老七,
老7你就装嘛…总要遭雷P的
[围观]
不是有选项的么?
[围观]
十年灯 回复:
四月 11th, 2010 10:07
@刘晓林,
WP自己的选项只能让你选择都填或者都不填….
[围观]