第一步:要在评论中增加楼号显示,也就是要更改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 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.在显示评论时提取楼号:
//注意此处应当是在自定义的评论显示函数中(themes下的function.php,用ultraedit32等编辑器打开)
//最常见的是在显示日期的代码后加上如下代码(根据具体情况可能稍有变化 有的可能是
代码如下 | 复制代码 |
<div> ) <span class="floor"><?php global $comment_ids; |
如果有看不懂的地方可以留言。我会尽最大努力帮助你
另一种办法
结合 comments.php 模板的评论循环函数,就能轻松解决楼层编号问题。
编辑 comments.php 文件,找到以下评论循环的入口代码:
代码如下 | 复制代码 |
<?php foreach ($comments as $comment) : ?> |
在这句代码之前添加:
代码如下 | 复制代码 |
<?php $count=1; ?> |
//初始化 $count 变量,赋值 1在需要显示楼层编号的地方,插入以下代码,当然,如何呈现需要可以自定义样式:
代码如下 | 复制代码 |
<?php echo $count; ?> |
//输出楼层编号每次评论循环函数执行后,对 $count 变量进行加 1 操作,因此需找到:
代码如下 | 复制代码 |
<?php endforeach; ?> |
在此循环结束之前加入:
代码如下 | 复制代码 |
<?php $count++; ?> |
//$count 变量自加 1该方法在不分页评论中测试通过,但是否支持分页评论,有待考究