wordpress主评论楼层修正版(支持倒序顺序)

LMS
2.8K+ 21

这个楼层显示的代码来自zww大的,不过z大的代码因为有一句查询数据库返回的值不正确,导致倒序(也就是后台设置在每个页面顶部显示最新的评论)时,楼层显示不正确,我将那句改成wordpress函数get_comments后,问题得到解决,代码如下:

global $commentcount, $page;
if ( (int) get_option('page_comments') === 1 && (int) get_option('thread_comments') === 1 ) { //开启嵌套评论和分页才启用
        if(!$commentcount) { //初始化楼层计数器
                $page = ( !empty($in_comment_loop) ) ? get_query_var('cpage') : get_page_of_comment( $comment->comment_ID, $args ); //获取当前评论列表页码
                $cpp = get_option('comments_per_page'); //获取每页评论显示数量
                 if ( !$post_id ) $post_id = get_the_ID();
                 if ( get_option('comment_order') === 'desc' ) { //倒序
                        $cnt = get_comments( array('status' => 'approve','parent' => '0','post_id' => $post_id,'count' => true) );
                        if (ceil($cnt / $cpp) == 1 || ($page > 1 && $page  == ceil($cnt / $cpp))) $commentcount = $cnt + 1;
                        else $commentcount = $cpp * $page + 1;
                } else {
                        $commentcount = $cpp * ($page - 1);
                }
        }
        if ( !$parent_id = $comment->comment_parent ) {
                $commentcountText = '';
                if ( get_option('comment_order') === 'desc' ) { //倒序
                        $commentcountText .= --$commentcount . '楼';
                } else {
                        $commentcountText .= ++$commentcount . '楼';
                }
        }
}

按照代码中的注释,必须开启嵌套评论和分页楼层显示才有效,这个我就没测试了,上面的代码放在自定义评论回调函数里,然后在需要显示楼层的地方加代码:echo $commentcountText;,这和z大的当然一模一样了。

其实上面代码我省略了自定义1、2、3楼名字的那些代码,原文可以看z大的:http://zww.me/archives/25716

THE END

评论 21

  1. 太棒了,找了好长时间了!...终于实现了 :razz: :razz: :razz:

  2. xuexi
    🏅

    博主,上面代码没有实现
    1-1
    1-2
    1-3
    能分享下代码吗?

    1. 这不是我原创的,好像网络上有,你搜一下,或者下我的无节操版看看,里面应该有。

      1. 博主 你正这个 如果注册用户了 游客就不能用这个名字可以分享下不?
        我上载你主题直接拿functions最前面一段 没有作用哦

      2. 能出现7-1-1吗

  3. 我添加了,样式也自己定义了,可是那个代码不管放哪里,就是没显示楼层,我直接查看源代码,发现根本就没搜到我定义的样式的class。好郁闷。wp3.8.2

  4. 为什么我用无节操的评论老是需要人工审核,很麻烦 :arrow:

    1. 在别人的基础上修修改改不算什么,惭愧惭愧

  5. 终于更新了,还以为博客长草了 :wink:

    1. 话说我用360浏览器,为何你这里会显示谷歌图标

      1. 360是个借死还魂的东西,说明你电脑装有谷歌浏览器。

        1. 装了个绿色版谷歌……我第一反应就是没有360的图标 :arrow:

  6. 关键是 get_option('comment_order') === 'desc' 这句话作用,挺不错的。

发表评论

Submit