ZenOven's Archivers

From zenoven on 2013-09-19 11:45:30

用get_comments实现WordPress带头像最新评论

前一段在制作zAlive主题的时候需要一个带头像最新评论widget,网上Google了一大圈发现用的最多的是SQL,我也就直接拿来用了,而且神奇的是通过了WP的主题审核,但是后来在更新主题的时候怕不给通过,就索性找别的方法,也就是今天的主角,get_comments()

其实用get_comments()实现WordPress带头像最新评论zww很早就有一篇文章介绍,但是从2010年到现在WP已经升级了N多个版本,原来的参数有的已经失效,于是我就重新翻阅文档,用新版的get_comments实现WordPress带头像最新评论。

我写的这个可以指定获取的评论数,头像尺寸,评论字符数

[code lang="php"]
function zAlive_recentComments($count,$avatarSize,$excerptLength){
$comments;
if( $count != 0 ){
//新版的get_comments()不能直接获取指定类型的评论(比如会获取到pingback/trackback),+30是为了多获取一些评论,从而减少获取不到指定数量的评论的机会
$comments = get_comments( apply_filters( 'widget_comments_args', array( 'number' => $count + 30, 'status' => 'approve', 'post_status' => 'publish' ) ) );
}
$valid_comments_number = 0;//有效评论数
$output = '';
if( !empty ( $comments ) ){
foreach ($comments as $comment) {
$post = get_post( $comment->comment_post_ID );
//评论不是pingback或trackback并且评论所属文章没有密码保护
if( empty ($comment->comment_type ) && empty ( $post->post_password ) ){
$output .= '<li class="clearfix">'. get_avatar($comment, $avatarSize) .'<div class="comment-data"><a class="title" href="' . get_permalink($comment->comment_post_ID) . "#comment-" . $comment->comment_ID . '" title="on ' . strip_tags( $post->post_title) . '">' . wp_html_excerpt( strip_tags ( $comment->comment_content), $excerptLength ) . '</a>' .'<span class="comment_author detailed visible-desktop">From <span class="author">' . $comment->comment_author . '</span>&nbsp;&nbsp;<span class="date">' . $comment->comment_date . "</span></span></div></li>";
$valid_comments_number++;
if( $valid_comments_number == $count )
break;
}
}
}
$output = convert_smilies($output);
echo $output;
}
[/code]

然后就是调用了,比如zAlive_recentComments(10,40,100)

查看完整版本: 用get_comments实现WordPress带头像最新评论

From 记忆碎片 on 2013-09-22 00:52:11

这个蛮不错的

From 一米 on 2013-09-23 16:05:40

修改主题呢,刚用上。

From 菠萝 on 2013-09-24 07:46:13

哈哈,这个很实用。。。

From 集趣 on 2013-10-03 11:59:33

这方法的确不错哦

From 断桥残雪 on 2014-01-10 12:33:10

ok,学习了。挺不错的。

Tags: get_comments, WordPress, 最新评论


©ZenOven