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

之前

万戈

曾经提出要手动查找留言者在本站的最早留言的内容。作为一个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. Y

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

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

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

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

  6. Y

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

  7. Y

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

  8. Y

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

  9. Y

    这回你该满意了吧?!

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

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

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

  13. Y

    我也不知道有什么意义

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

  15. Y

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

  16. 哈哈,这功能鸡肋,没啥用吧

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

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