很早就有在wordpress留言框隐藏以前评论过的访客信息的方法,据说可以提高用户体验,不过空着也是浪费地方,我在philna在那里看到他家的主题会提示访客30天内评论了多少次,觉得很好。这样会提高访客评论的积极性,跟排行榜有类似的效果。另外,对于那些曾经留言过,但长时间潜水或好久没来的访客,提示“您好久没留言了”,催促留言 ^_^ ……

2

这就是相关的代码:

<?php  //copy下面的代码到主题function.php里调用
/**
 * welcome message
 * @param unknown_type $email
 * @return void|string
 */
function WelcomeCommentAuthorBack($email = ''){
	if(empty($email)){
		return;
	}
	global $wpdb;

	$past_30days = gmdate('Y-m-d H:i:s',((time()-(24*60*60*30))+(get_option('gmt_offset')*3600)));
	$sql = "SELECT count(comment_author_email) AS times FROM $wpdb->comments
					WHERE comment_approved = '1'
					AND comment_author_email = '$email'
					AND comment_date >= '$past_30days'";
	$times = $wpdb->get_results($sql);
	$times = ($times[0]->times) ? $times[0]->times : 0;
	$message = $times ? sprintf(__('过去30天内您评论了<strong>%1$s</strong>次,感谢关注~' ), $times) : '您很久都没有留言了,这次想说点什么吗?';

	return $message;
}

使用方法:在comments.php合适的地方,比如留言框上面调用这个函数:

<?php echo WelcomeCommentAuthorBack($comment_author_email); ?>
友情提示,我的主题公告栏也会变化的,不信连续刷新几次看看。。。

  1. 阿达 (2010.12.20 at 22:09) 49楼

    我来试试

  2. david (2010.12.22 at 01:25) 50楼

    你好,我试了你的方法,在IE6是正常的,可是在firefox里却看不到效果,你觉得会是怎么回事呢?

    • winy() (2010.12.23 at 09:57)

      @david
      既然IE都正常,那应该没啥问题,你刷新下缓存,用firebug看看源码

    • david (2010.12.23 at 18:21)

      @winy ,
      杯具的是现在连IE都显示不出来了。晕哦。

  3. 未扬清 (2010.12.25 at 15:33) 51楼

    这个不错,不过似乎教程对新人估计看不明白

    • winy() (2010.12.25 at 18:55)

      @未扬清
      这个是推荐有一定基础的自己折腾玩儿~

  4. zigbee (2010.12.30 at 22:23) 52楼

    追来了,回去折腾一下。

  5. Gya (2011.01.04 at 20:01) 53楼

    我拿去用用,谢了

  6. Kaysnoopy (2011.01.10 at 15:26) 54楼

    很厉害。遇到高手。用上了~ :razz:

  7. Junan (2011.02.01 at 15:21) 55楼

    来学习折腾~~~ :lol: :lol:

评论分页: 1 ... 5 6 7 8 9

发布评论

邮箱(必填)

换个背景