WP取得访客在本站第一条留言的方法

之前

<a href="http://wange.im/the-first-message-on-my-site.html">万戈</a>

曾经提出要手动查找留言者在本站的最早留言的内容。作为一个Coder,我觉得他的方案虽然很有人情味,但是太不智能了。所以今天就简单写了个SQL文,包成了一个函数。可以直接放在functions.php里,然后在有comments循环的地方直接调用。效果见本站(很烂而且本人认为这个功能很蛋疼,所以演示在两周后关闭。)

<?php if (function_exists( 'get_first_comment' )){ get_first_comment (get_comment_author_email() ); } ?>

随便转载,随便自由发挥,反正不注明出处我也看不到。只是给不会写SQL的同学们打个样子而已。
因为功能实在太简单了,所以就懒得写说明了,有技术问题直接回复交流好了。

P.S:启用了中文工具箱的同学可以把函数放在中文工具箱里,然后把注释去掉,可以解决中文内容最后的半字符乱码问题。
函数具体代码:

function get_first_comment ($author_email = '')
{
	global $wpdb;
	$result = "<p>";
	$got = false;
	$author_email = "'".$author_email."'" ;
	$q = "SELECT C.comment_ID, C.comment_author, P.post_title, P.guid , C.comment_date, C.comment_content FROM wp_comments C, zuosuo_posts P WHERE (C.comment_post_ID = P.ID) AND (P.post_status = 'publish') AND (C.comment_approved = '1') AND (C.comment_author != 'blogmaster') AND (C.comment_author != '') AND (C.comment_author_email = $author_email) ORDER BY C.comment_date ASC LIMIT 1" ;
	$comments = $wpdb->get_results($q);	
	foreach ($comments as $comment) {
		$got = true;
		$content = substr($comment->comment_content,0,20);
                //$content = utf8_trim($content).'...';
		$comment_date = mysql2date('j.M.Y', $comment->comment_date);
		$comment_author = '<b>'.$comment->comment_author.</b>;
		$comment_url = $comment->guid.'#comment-'.$comment->comment_ID;
		$result = $result.$comment_author.'最早于'.$comment_date.'在本站说过:<a href="'.$comment_url.'" rel="comment" title = "'.$content.'">'.$content.'</a>';
	}
	if ($got)
	{
		$result = $result.'</p>';
		echo $result ;
	}
}

已有10条评论

  1. 还是你专业,我是手动查找的。。。。

  2. 对付像你这样换了邮箱的就想不到什么好办法了。

  3. 这个有用,等以后访问的人多了,搞个活动,但是现在,基本上都是几个熟人过来,谁还在乎第一次啊。嘿嘿

  4. 透明看着就像高级货,就是一下子字看不大清楚啊!

  5. 做成供访客自由查找自己的第N条留言还可以成为一个不错的功能。。。

  6. 所以我说万戈的这个想法很蛋疼

  7. 嗯,找到合适的图片还是把背景换一下好了

  8. 查询应该也不难.可是想不出入口应该做到哪里

  9. 还有旁边那只小鸟,我总以为是回到顶部的按钮。。。

  10. 这个功能的确很蛋疼,我暂时想不到什么时候需要用

  11. WP貌似很牛X,很先进的说,我是体会不到了 哈哈

  12. 我也紧跟老万脚步发了一篇第一条留言的文章。。。在后台评论管理找的 也算手动吧。。

  13. 那当然是手动了.尤其是你们这种留言量大的

    1. 确实没啥用.我自己都不用了.

你好,新朋友。留言前请先填写昵称邮箱