香港独立IP空间
香港php空间
美国php空间
域名注册

WordPress貌似和垃圾评论是一对“孪生兄弟”,无论在国内还是国外的php主机上搭建的Wordpress博客,无论Wordpress有多少流量多么低的权重,垃圾评论都会自动找上门来,假如有好几天没有进Wordpress后台查看的话,当你再一次“踏入”时却发现垃圾评箱已经爆满了。WordPress垃圾评论数量多容易掩盖正常的读者评论,批量删除垃圾评论又容易造成误删,WordPress垃圾评论发布机器持续不断地向网站提交评论请求,频率足够高的话则变演变成一种网站攻击,配置差一些的php空间很有可能因此而运行缓慢,严重者造成服务器宕机,无法正常访问。WordPress的垃圾评论的危害是不言而喻的,对付Wordpress垃圾评论不仅要“阻断”垃圾评论的发布,更要提前“阻止”垃圾评论的提交,在无忧主机官方(www.51php.com)WordPress板块有很多预防垃圾评论技术文档,今天小编将给大家分享一下:WordPress每篇文章如何实现只允许用户评论一次。这类访问也能有效的预防垃圾评论。
原理:每次用户发表的评论进数据库之前,从当前文章的所有评论中查找是否有相同的用户名、邮箱、IP进行筛选如,如果有就跳到错误页面。
方法如下:
文本编辑器(editplus)打开:将下列代码插入当前WordPress主题目录下functions.php中即可

function ludou_getIP() {
$ip = $_SERVER['REMOTE_ADDR'];
$ip = preg_replace( '/[^0-9a-fA-F:., ]/', '', $ip );

return $ip;
}

function ludou_only_one_comment( $commentdata ) {
global $wpdb;
$currentUser = wp_get_current_user();

// 不限制管理员发表评论
if(empty($currentUser->roles) || !in_array('administrator', $currentUser->roles)) {
$bool = $wpdb->get_var("SELECT comment_ID FROM $wpdb->comments WHERE comment_post_ID = ".$commentdata['comment_post_ID']." AND (comment_author = '".$commentdata['comment_author']."' OR comment_author_email = '".$commentdata['comment_author_email']."' OR comment_author_IP = '".ludou_getIP()."') LIMIT 0, 1;");

if($bool)
wp_die('本站每篇文章只允许评论一次。<a href="'.get_permalink($commentdata['comment_post_ID']).'">点此返回</a>');
}

return $commentdata;
}
add_action( 'preprocess_comment' , 'ludou_only_one_comment', 20);

这样就实现了一篇文章单个用户只能评论一次。朋友们不妨试一试。

无忧主机相关文章推荐阅读:
WORDPRESS教程:自定义管理面板标题
WORDPRESS如何全自动添加图片ALT属性
WORDPRESS教程:禁止搜索引擎收录特定的文章

本文地址:http://www.51php.com/wordpress/20308.html

喜欢本文或觉得本文对您有帮助,请分享给您的朋友 ^_^

阅读本文的人还阅读:


搜索技术文档