Eliza’s Tin

11 Dec, 2008

继续改页面-wordpress评论功能只填姓名不填邮箱地址

Posted by: eliza In: 学习笔记

wordpress模板默认的评论功能非常讨厌,添加评论的时候一定要填名称和邮箱。碰到像我这种懒人,就算想写两句屁话,一看要填邮箱那么麻烦也就懒的写了。所以就想怎么把邮箱选项给关了,上网搜了下,还是挺简单的。
Wordpress里发表评论的模块是其根目录下的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.') );
}

可以看到Wordpress 首先检查后台选项是否要求填写姓名和邮箱。若要求,则先检查评论作者邮箱的长度和评论作者姓名的长度,前者要求长度至少为6,后者不能为空。若邮箱长度小于6或作者姓名为空,则提示“Error: please fill the required fields (name, email).”。如果这一步通过了,则再检查邮箱地址的格式,若格式不正确,提示“Error: please enter a valid email address.”,至此,评论提交才成功。
查到的更改思路是这样的:只检查姓名长度,若空则提示出错,但如果评论者填写了邮箱地址,则验证它的格式,如果错误则提醒评论者返回修改。以下是改过的代码:

if ( get_option('require_name_email') && !$user->ID ) {
    if ( '' == $comment_author )
        wp_die( __('请填写昵称后再发表评论 ^^') );
    if ( "" != $comment_author_email) {
        if ( !is_email($comment_author_email))
        wp_die( __('邮箱格式不正确,不小心填错了? 请返回更正它吧 ^^') );
    }
}

最后再删掉前台页面的“必填”提示就好啦。文件在所用模板的根目录下:comments.php

(其实这些我自己看就好了,写出来总觉得有点坍台。。。)



1 | shiwen

December 22nd, 2008 at 4:29 pm

Avatar

小鱼是用功啊

2 | eliza

December 22nd, 2008 at 5:17 pm

Avatar

我要发一个双手叉腰闭着眼睛咧着大嘴仰天笑的表情

3 | Server

May 24th, 2009 at 11:50 pm

Avatar

哈哈,接着发帖实验

4 | kxzkxz7139

June 22nd, 2009 at 11:15 pm

Avatar

我也做了一个改进
可以填写QQ号而不是邮箱地址

首先把前台的显示改掉

然后那部分代码改为
[code]
if ( get_option(’require_name_email’) && !$user->ID ) {
if ( ” == $comment_author )
wp_die( __(’Error: please fill the required fields (name, email).’) );

if ( (7 > strlen($comment_author_email)) && ( ” != $comment_author_email))
wp_die( __(’Error: please fill the required fields (name, email).’) );

if ( !is_email($comment_author_email)):
if(preg_match(”/[^\d-., ]/”,$comment_author_email)){
wp_die( __(’Error: please fill the required fields (name, email).’) );
}else{
$comment_author_email = “$comment_author_email” .”@qq.com”;
}
endif;
}
[/code]

至于wp_die后面显示的信息我是在.po、.mo文件里面改的

5 | michael

November 11th, 2009 at 4:21 pm

Avatar

我就是按照4楼方法把邮箱改成QQ怎么总是提示
Parse error: syntax error, unexpected ‘[’ in /usr/virtual/michael123/sscgame.com.cn/public_html/wp-comments-post.php on line 63
向高手请教我该怎么解决呢,是不是标点有错误了啊

我有话要说



About

1984年生人,26岁的水瓶座

爱猫,爱电影,爱拍照;爱自由,更爱巧克力

坚定不移的走网页设计师道路,并且立志成为最好的那一种。

Email:elizayyys@gmail.com


订阅我

抓虾 pageflakes
google reader my yahoo
鲜果 哪吒
feedsky