第一步:要在评论中增加楼号显示,也就是要更改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;
- $comment_floor = $comment_ids[get_comment_id()];
- echo $comment_floor.'楼'; ?></span>
如果有看不懂的地方可以留言,我会尽最大努力帮助你.
另一种办法
结合 comments.php 模板的评论循环函数,就能轻松解决楼层编号问题,编辑 comments.php 文件,找到以下评论循环的入口代码:
<?php foreach ($comments as $comment) : ?>
在这句代码之前添加如下代码:<?php $count=1; ?>
初始化 $count 变量,赋值 1在需要显示楼层编号的地方,插入以下代码,当然,如何呈现需要可以自定义样式,代码如下:<?php echo $count; ?>
输出楼层编号每次评论循环函数执行后,对 $count 变量进行加 1 操作,因此需找到:
<?php endforeach; ?>
在此循环结束之前加入:<?php $count++; ?>
新闻热点
疑难解答
图片精选