为WordPress评论加入楼层显示
所谓楼号显示,即是根据评论发表的时间先后顺序显示该评论在评论列表中占据的楼号,第一条评论为1楼,第二条为2楼,以此类推。
在原本不支持嵌套评论的WP 2.6.5以前,为评论加上楼号是件很简单的事。因为最新的评论总是在最下,需要做的只是在显示评论的循环中输出一个依次累加的数即可。但在嵌套评论模式下,由于最新的评论可能是被嵌套在其他评论中的一条子回复,因此在最下(上)的评论未必是最新。换句话说,像以前那样给最下(上)的评论赋予最新的楼号就不再正确了。因此,要能够在嵌套评论中也显示正确的楼号,需要少少绕一点弯路。
第一步:要在评论中增加楼号显示,也就是要更改WordPress的评论内部结构。
第二步: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 global $comment_ids; $comment_ids = array();
- foreach ( $comments as $comment ) {
- if (get_comment_type() == "comment") {
- $comment_ids[get_comment_id()] = ++$comment_i;}
- } ?>
2.在显示评论时提取楼号:
//注意此处应当是在自定义的评论显示函数中(themes下的function.php,用ultraedit32等编辑器打开)
//最常见的是在显示日期的代码后加上如下代码(根据具体情况可能稍有变化 有的可能是
- <span class="floor"><?php global $comment_ids;
- $comment_floor = $comment_ids[get_comment_id()];
- echo $comment_floor.'楼'; ?></span>
order Zelnorm/6mg x 30 (pills) 七月 27th, 2010 at 16:29 1楼
The [b]drug interactions between prednisone and synephrine[/b] of ultracet
[回复此评论]