经过几天的默默修改,终于算是把关于评论的页面搞定了。还真是很多东西要摆弄,不过全部摆弄完了,回页面上一看……几乎看不出来什么变化。不过这大概也是搞这个东西的特点吧,通常是忙了几个小时甚至几天,页面上看起来都没什么变化。甚至有时候,需要一切推倒重新来过。但是就是这个过程,让我们学习着也快乐着。
不继续了~阿修把这些天搞的东西稍微整理一下吧。
1、边栏输出最新评论。
你的模版有这个了?可是我没有……但是又不寄希望于插件了,因为X先生已经在评论中批评我插件太多导致速度慢了(待测)。这里讲到得是用代码搞上去。
首先是数据库中抽出字段comment_author(评论人), comment_author_url(评论人链接), comment_ID(评论ID), comment_post_ID(文章ID)。(如果想输出gavatar,还需要Email)。字段基本如下。
<?php global $wpdb, $comments, $comment; $comments = $wpdb->get\_results("SELECT comment\_author, comment\_author\_url, comment\_ID, comment\_post\_ID, SUBSTRING(comment\_content,1,22) AS comment\_excerpt FROM $wpdb->comments LEFT OUTER JOIN $wpdb->posts ON ($wpdb->comments.comment\_post\_ID = $wpdb->posts.ID) WHERE comment\_approved = '1' AND comment\_type = '' AND post\_password = ''AND comment\_author != 'xx' AND user\_id='0' ORDER BY comment\_date\_gmt DESC LIMIT 7"); ?>其中SUBSTRING(comment_content,1,22)一句用来限定输出语句的长度,我这里限定为22。
comment_author != ‘xx’中xx是你不想输出的评论作者,例如博主。
LIMIT 7可以限定输出条数。
之后便可以在边栏定义来进行输出了~代码如下,内容很容易理解。
<ul id="recent\_comments"><?phpforeach ($comments as $comment) :echo '<li class="recentcomments">'.sprintf(\_\_($comment->comment\_author),'<a href="'. $comment->comment\_excerpt . '.. »</a>') . sprintf(\_\_(' %1$s'),'<a href="'. get\_permalink($comment->comment\_post\_ID) . '#comment-' . $comment->comment\_ID . '" title="' . $comment->comment\_author . ' 评论于 ' . get\_the\_title($comment->comment\_post\_ID) . '">' . $comment->comment\_excerpt . '.. »</a>' ) . '</li>';endforeach; ?></ul>2、添加嵌套评论
因为主题的原因,在用wordpress-thread-comment这个插件的时候会出现问题,例如“网页上有错误”,主要就是无法弹出回复评论框,这个问题能够解决,还要感谢腾信家的 WP2.7 beta3 添加嵌套评论 。YoungCheon在这篇文章里介绍的很详细,不再过多介绍了,有需要的同学请瞬步。
我在这个上面犯的错误就是莫名其妙地把评论框隐藏了……查了好半天,发现原因是 把评论框写进循环:
if ($commentCount > 0 || 'open' == $post->comment_status) : ?>
导致的问题就是当评论数量是0的时候,根本看不到评论框,无法评论……哎。所以在感觉差不多的时候一定要及时endif;?>掉!否则结果难以预料。
还有就是感谢我的博客主机能发邮件……要不然因为邮件提醒又要添加一个插件~