The change you want to see in the world .

带头像显示的最新评论

最近把博客主题的一些细节性问题作了处理,当看到自己的wordpress启用的插件越来越多时,就在想是该对这些插件做些手术了。不用插件能实现的功能,绝不用插件实现。就如All in One SEO Pack这个插件我就一直没用过。看了看自己的插件后,决定首先对广告插件和最新评论这几个插件动刀。

于是乎通过google找到了popdo这个不仅不要插件而且支持头像显示的代码。我拿到后马上就ctrl+c ctrl+v的用起来。没想到的是插入代码后,wordpress报错了。后来我仔细看了看他的代码首尾部有点小错误。修改后的代码如下:

//最新评论函数
//下行no_comments =是调用最新评论的条数
function get_recent_comments($no_comments = 5, $before = ‘<li> ‘, $after = ‘<div class=”clear”></div></li>’, $show_pass_post = false) {
//最新评论涉及的相关数据库查询字段,针对原版我添加了post_title, comment_author_email 两个字段,分别是日志标题字段和评论者email字段
//下面的comment_author是过滤不显示评论的评论者昵称,你可以改为你自己
global $wpdb, $tablecomments, $tableposts;
$request = “SELECT ID, comment_ID, comment_content, post_title, comment_author_email, comment_author FROM $tableposts, $tablecomments WHERE
$tableposts.ID=$tablecomments.comment_post_ID AND (post_status = ‘publish’ AND comment_author !=’shooven‘ OR post_status = ’static’) AND comment_type = ””;
if(!$show_pass_post) { $request .= “AND post_password =” “; }
$request .= “AND comment_approved = ‘1′ ORDER BY $tablecomments.comment_date DESC LIMIT
$no_comments”;
$comments = $wpdb->get_results($request);
$output = ”;
foreach ($comments as $comment) {
$comment_author = stripslashes($comment->comment_author);
//下行设置评论截断的字数,使用mb_strimwidth精准统一截断中英文字数
$comment_excerpt = mb_strimwidth(strip_tags(apply_filters(’the_comment’, $comment->comment_content)), 0, 32,”…”);
$permalink = get_permalink($comment->ID).”#comment-“.$comment->comment_ID;
//下行是最新评论调用显示相关,我插入了调用gravatar头像函数和日志标题函数,并且修改了这部分的输出布局。
$output .= $before . ‘<div>’ . get_avatar($comment, 32) . ‘</div><div><a href=”’ . $permalink . ‘” title=”on: ‘ . $comment->post_title  . ‘”>’ . $comment_author . ‘</a>’ .’<p>’. $comment_excerpt . ‘</p>’.'</div>’ . $after;
}
echo $output;
}

代码中用红色标记的是你可以修改的。第一个红色标记“5”是控制显示评论条数的,请将第二个红色标记“shooven”换成你自己的昵称,第三个红色标记“32”是控制评论内容显示字数的,第四个红色标记“32”是控制头像大小的。

首先你要将上述代码复制复制黏贴到你使用的theme文件夹下的functions.php文件中并保存。

接下要做的是给最新评论的样式做个定义

.avatar{
float:left;
margin:1px 5px 0px 0px;
padding:0px 0px 0px 0px;
width:32px;
}
.avatar-right{
float:right;
line-height:16px;
margin:0px 5px 0px 0px;
padding:0px 0px 0px 0px;
width:220px;
}
.avatar-right p{
margin:3px 0px 0px 0px;
padding:0px 0px 0px 0px;
}

.clear{
clear: both;
height:0px;
overflow:hidden;
}

将上面这个样式代码复制粘贴到你使用的theme文件夹下的style.css文件中并保

最后一步把下面的代码复制粘贴到你想显示最新评论的地方(比如侧栏)

<?php get_recent_comments(); ?>

最终的显示效果如下图所示:

效果图