WordPress帶Gravatar頭像的最新評論代碼-排除管理員評論
編輯:狂族晨曦 來源:WordPress技巧 日期:2016-06-27 閱讀: 7,318 次 19 條評論 » 百度已收錄
先森博客的首頁本來右側顯示的是熱門文章的,但是這些熱門文章來自瀏覽量,由于用的是WordPress大學看到的record_visitors訪問計數,先森又無法讓其顯示最近一個月內訪問量最多的文章,所以“熱門文章”里的文章基本就沒有變動過,因此放在首頁也就沒有人看了。所以先森思來想去,還是將其換成了最新評論。最新評論經常變動,效果應該會好一些。
最新評論是一個常用功能,WordPress大學和知更鳥都有分享,WordPress大學提供的方法是放在側邊欄的,且是2012年分享的代碼了,所以先森選擇了知更鳥2014年分享的“WordPress最近評論代碼”。
先森使用了鳥叔提供的代碼后,等修改完CSS樣式之后才發現了一個重大的問題:每條評論的鏈接都是一樣的!

調用的評論鏈接相同
研究了半天,先森發現是代碼中get_permalink的參數用錯了,修改過來就正常了。而在拍錯的過程中先森又發現了一種也比較好用的調用最新評論的方法,所以本文會分享兩種調用最新評論的方法。大家根據喜好選擇吧。
兩種代碼方法
第一種:
第一種方法是根據鳥叔分享的代碼修改的,改正了鏈接調用的問題,實現了排除管理員評論,增加了鏈接的描述為評論的文章標題,以及更靈活的設置參數。
第一步,將下面的代碼添加到您當前的主題 functions.php 文件中
/*
*調用最新評論
*成航先森修改
*//www.cnidcc.cn/newest_comments.html
*/
function newest_comments($no_comments, $comment_len, $avatar_size) {
$comments_query = new WP_Comment_Query();
$comments = $comments_query->query( array( 'number' => $no_comments,'user_id'=>0) );
$comm = '';
if ( $comments ) : foreach ( $comments as $comment ) :
$comm .= '<li><a class="author" href="' . get_permalink( $comment->comment_post_ID ) . '#comment-' . $comment->comment_post_ID . '">';
$comm .= get_avatar( $comment->comment_author_email, $avatar_size );
$comm .= '<strong>'.get_comment_author( $comment->comment_ID ) . ':</strong>';
$comm .= strip_tags( substr( apply_filters( 'get_comment_text', $comment->comment_content ), 0, $comment_len ) ) . '</a> </li>';
endforeach; else :
$comm .= '沒有評論';
endif;
echo $comm;
}
然后,在WordPress主題中想要調用的地方添加以下代碼:
<div class="newest_comments"> <h3>最新評論</h3> <?php newest_comments(10,80,24); ?> </div>
上面newest_comments中的三個參數的意思是調用10篇文章,評論長度為80,Gravatar頭像大小為24px,可以根據實際情況靈活修改這三個參數。
CSS樣式參考:
.newest_comments li{overflow:hidden;width:99%;height:37px;border-top:1px dashed #dadada;text-overflow:ellipsis;white-space:nowrap;word-wrap:normal;line-height:37px}
.newest_comments li:first-child{border:0 none}
.newest_comments .avatar{float:left;margin:6px 8px 0 0;width:24px;height:24px}
.newest_comments strong{padding-right:5px}
第二種:
第二種方法其實也來自鳥叔,是begin主題中扒出來的。第二種方法同樣可以排除管理員的評論,只是使用的方法與第一種方法不同。
只需要在WordPress中想要顯示的地方添加以下代碼即可:
<div class="newest_comments">
<h3>最新評論</h3>
<ul>
<?php
$show_comments = 10;
$my_email = get_bloginfo ('admin_email');
$i = 1;
$comments = get_comments('number=200&status=approve&type=comment');
foreach ($comments as $my_comment) {
if ($my_comment->comment_author_email != $my_email) {
?>
<li <?php if ($i == $show_comments){echo 'style="border: none;';}?>>
<a href="<?php echo get_permalink($my_comment->comment_post_ID); ?>#comment-<?php echo $my_comment->comment_ID; ?>" title="<?php echo get_the_title($my_comment->comment_post_ID); ?>" >
<?php echo get_avatar($my_comment->comment_author_email,24); ?>
<span class="comment_author"><strong><?php echo $my_comment->comment_author; ?></strong></span>
<?php echo convert_smilies($my_comment->comment_content); ?>
</a>
</li>
<?php
if ($i == $show_comments) break;
$i++;
}
}
?>
</ul> </div>
第二種方法中,修改評論數量是在第5行,上面是10條評論。修改Gravatar頭像大小在第16行,上面是24px。
至于CSS樣式,直接參考第一種的就可以了。
歷史上的今天:
- 2015: 畢業季:從我的角度看學長學姐畢業(2)
轉載請注明出處來自http://www.cnidcc.cn/newest_comments.html

川公網安備 51011202000104號
厲害,技術流!
好,我又來了,繼續看看有啥好東西
G頭像已經被屏蔽打不開了。
@夏日博客: 我用的是本地緩存,緩存對象是新浪源
確實不錯
我現在用的主題自動屏蔽啦
在代碼后面注釋上,更直觀點。
看著很不錯
66666666666!!!!!!!
我管他是否能打開的。
這個還是很實用的。
我就瞅瞅不說話、技術流
其實我一直想說,我手機打開你的站,縮略圖總顯示不出來。不知道是手機瀏覽器問題還是。
@Koolight: 這個,我在UC瀏覽器手機版上確實有這個問題,不知道你是不是?
@狂族晨曦: 是的UC瀏覽器的,但是第二次打開就可以顯示了。
謝謝分享,學習學習。
有點看不懂,但是知道是好東東
技術帝啊
好像并沒有什么意義麼。