Highslide for Wordpress Plugin
[轉載請保留] 作者: 漿糊 原文: http://www.kamiyeye.com/archives/895

所謂樓號顯示,即是根據評論發表的時間先後順序顯示該評論在評論列表中佔據的樓號,第一條評論為1樓,第二條為2樓,以此類推。

在原本不支持嵌套評論的WP 2.6.5以前,為評論加上樓號是件很簡單的事。因為最新的評論總是在最下,需要做的只是在顯示評論的循環中輸出一個依次累加的數即可。但在嵌套評論模式 下,由於最新的評論可能是被嵌套在其他評論中的一條子回覆,因此在最下(上)的評論未必是最新。換句話說,像以前那樣給最下(上)的評論賦予最新的樓號就 不再正確了。因此,要能夠在嵌套評論中也顯示正確的樓號,需要少少繞一點彎路。

第一步:要在評論中增加樓號顯示,也就是要更改WordPress的評論內部結構,更改方法詳見如何自定義WordPress2.7的評論內部結構,這裡不再贅述

第二步:WP 中的評論是統一標號的。也就是說,一條標號為256的評論並不知道它自己在某個日誌中應該是幾樓。所以要由我們來告訴它。舉例來說,假設某篇日誌中的評論 分別是201號、207號、311號,其中311號是201號的子回覆。那麼儘管311是最新評論,但實際顯示順序是 201-311-207(從上到下)。怎麼才能讓201知道自己是1樓,311知道自己是3樓呢?雖然說WP 2.7的顯示評論的順序由於嵌套規則的存在而被打亂,但實際上其在提取評論的時候仍然是按標號順序來的。也就是說例子中的評論提取順序是 201-207-311,這樣就正好符合1樓-2樓-3樓。所以方法也就很明顯了,在提取評論的時候賦予樓號,在顯示評論的時候提取樓號

示例代碼1——在提取評論時賦予樓號:
在comments.php中找到<?php if ( have_comments() ) : ?>或是<?php if ( $comments ) : ?>,在其後加上
<?php global $comment_ids; $comment_ids = array();
foreach ( $comments as $comment ) {
if (get_comment_type() == “comment") {
$comment_ids[get_comment_id()] = ++$comment_i;}
} ?>

示例代碼2——在顯示評論時提取樓號:
//注意此處應當是在自定義的評論顯示函數中
global $comment_ids;
$comment_floor = $comment_ids[get_comment_id()];
echo $comment_floor.’樓';

好了,只要你有那麼一點兒php基礎,我想看完這篇文章,你也會給主題加上樓號顯示功能了。如果對文章內容在闡述方面有疑義或是感覺不好懂的地方,不要吝嗇你的建議。我會把文章修改得更通俗易懂。

Related Posts with Thumbnails
有1個迴響於 “為WordPress主題增加樓號顯示功能”
  1.  
留下迴響