将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语句的单引号内是提示内容,你可以改成中文的,这样对用户更友好。但要注意编码问题。

如果想知道为什么要这么改,可访问前辈的文章:绿叶飘香

8 评论

发表评论

电子邮件地址不会被公开。