倘若想使用代码,而不想用插件来调用WordPress最新评论列表?可以在主题的sidebar.php里添加如下的代码:
03 |
$sql = "SELECT DISTINCT ID, post_title, post_password, comment_ID, |
04 |
comment_post_ID, comment_author, comment_date_gmt, comment_approved, |
05 |
comment_type,comment_author_url, |
06 |
SUBSTRING(comment_content,1,30) AS com_excerpt |
08 |
LEFT OUTER JOIN $wpdb ->posts ON ( $wpdb ->comments.comment_post_ID = |
10 |
WHERE comment_approved = '1' AND comment_type = '' AND |
12 |
ORDER BY comment_date_gmt DESC |
14 |
$comments = $wpdb ->get_results( $sql ); |
17 |
foreach ( $comments as $comment ) { |
18 |
$output .= "\n<li>" . strip_tags ( $comment ->comment_author) |
19 |
. ":" . " <a href=\"" . get_permalink( $comment ->ID) . |
20 |
"#comment-" . $comment ->comment_ID . "\" title=\"on " . |
21 |
$comment ->post_title . "\">" . strip_tags ( $comment ->com_excerpt) |
25 |
$output .= $post_HTML ; |
注:具体的演示效果可以查看本站主页的侧边栏。
基本的代码就完成了。现在,可以进一步对这份PHP代码做一些扩展,以完成更多的呈现形式。
1. 截断留言或者说限制留言字数
1 |
SUBSTRING(comment_content,1,30) |
这句里面的30就是留言字数限制。至于有朋友说到如何在结尾添加省略号,找到下面的foreach遍历那块,在或你想放的地方插入省略号就OK了。
2. 限制留言条数
这里的10就是你想输出的留言条数。
3.显示Gravatar头像
Gravatar头像是通过留言者邮件来判断显示的。所以先在$sql这块加上字段comment_author_email,形成:
1 |
$sql = "SELECT DISTINCT ID, post_title, post_password, comment_ID, |
2 |
comment_post_ID, comment_author, comment_date_gmt, comment_approved, |
3 |
comment_type,comment_author_url,comment_author_email |
然后在foreach这块加上调用gravatar头像的代码, 形成类似:
1 |
foreach ( $comments as $comment ) { |
2 |
$output .= "\n<li>" .get_avatar(get_comment_author_email( 'comment_author_email' ), 32). strip_tags ( $comment ->comment_author) |
3 |
. ":" . " <a href=\"" . get_permalink( $comment ->ID) . |
4 |
"#comment-" . $comment ->comment_ID . "\" title=\"on " . |
5 |
$comment ->post_title . "\">" . strip_tags ( $comment ->com_excerpt) |
这样就OK了。
4.排除admin留言
如果你的博客里面,自己的留言比较多的话,把这些排除会比较好一些。否则有时一个最新评论列表里面就只看得到你一个人的留言。不知道的还以为你在自己的博客里灌水。
找到下面的代码:
1 |
WHERE comment_approved = '1' AND comment_type = '' AND |
这些代码主要就限定你的留言列表中的每个条目所属的范围。比如comment_approved限定显示已通过审核的留言, comment_type限定留言的形式等等。而如果要排除admin,可以通过两种方式:
1.user_id=’0′
添加一个AND 把这句加到上面去,形成如:
1 |
WHERE comment_approved = '1' AND comment_type = '' AND |
2 |
post_password = '' AND user_id= "0" |
那留言列表里面就只会显示访客也就是非注册用户的留言。对于大多数WordPress博客来说,这都是适用的。好像也没有多少人开放注册。
2.comment_author != ‘admin’
留言作者不是admin,排除admin的留言。当然也适用于排除其它指定留言作者。需要注意的是,如果你这里排除的留言作者是中文名,要保证你的最新留言列表这个文件是UTF-8或ANSI as UTF-8编码。否则会无效。
当然还有一些排除的方法和其它的留言列表扩展应用,就不一一介绍了,大家触类旁通,自己去研究。有兴趣的朋友可以对照着你的WordPress数据库-表 wp_comments里面的各个字段,创建出你自己需要的留言列表,或者一些有趣的留言类应用。比如你可以弄一个列表只显示自己的回复,方便已留言且等待你回复的用户查看。