Comments offset

时间:2011-05-15 作者:Andycap

我需要显示从第二个开始的注释,省略第一个。对于帖子,我使用了“offset”,但我找不到任何类似的评论。由于我使用的是线程注释,因此必须从第二条非子注释(仅父注释)开始。我正在使用带有回调的wp\\u list\\u注释。

编辑2:这是实际的评论。php代码,回复后:

      <?php 
$i = 2;
if ( have_comments() ) : 
if ( $i > 1 ) :
?>
    <div id="comments">
    <h3 id="comments-title" class="color-<?php $category = get_the_category(); echo $category[0]->cat_name;?>">
</h3>


    <?php 

     global $wp_query; 
     $comments_arr = $wp_query->comments; 
     $comments_arr = sort( $comments_arr); 
     $comments_arr = array_pop( $comments_arr );
     $comments_arr = usort($comment_arr, \'comment_comparator\');                 
     wp_list_comments(\'callback=gtcn_basic_callback\', $comments_arr); 

    ?>


    <?php
    $i++; // count up
    endif; // If $i > 1
    else : if ( ! comments_open() ) : ?>
            <p><?php _e( \'Comments are closed.\' ); ?></p>

    <?php 
      endif; // end ! comments_open() 
endif; // end have_comments()  ?>
</div>
<?php comment_form(); ?>
结果:注释不再按karma排序(comment\\u comparator函数),第一条注释(带有我想隐藏的顶级karma的注释)仍然显示。

1 个回复
最合适的回答,由SO网友:kaiser 整理而成

<?php 
global $wp_query, $post; 
$comments_arr = $wp_query->comments; 
$comments_arr = sort( $comments_arr); 
$comments_arr = array_pop( $comments_arr );
$comments_arr = usort($comment_arr, \'comment_comparator\');

$comment_count = get_comment_count($post->ID);

 ?>
<h3 id="comments-title"><?php
    printf(
    _n( \'One Response to %2$s\', \'%1$s Responses to %2$s\', get_comments_number(), \'YOUR_THEMES_TEXTDOMAIN\' ),
    number_format_i18n( get_comments_number() ),
    \'<em>\' . get_the_title() . \'</em>\' 
);
?></h3>
if ( have_comments() ) : 
?><ul class="commentlist"><?php
for ( $i = 0; $i < $comment_count; $i++ )
{
    // do stuff: 
        // This shows you everything you got inside the comments array
        // Call it like this: echo $comments_arr[$i][\'comment_author\'];
        var_dump( $comments_arr[$i] ); 
    // end do stuff
} // endforeach;
?></ul><?php

elseif (\'open\' == $post->comment_status) :
    // If there are no comments, but status = open
    ?><p class="nocomments"><?php _e( \'No Comments.\', \'YOUR_THEMES_TEXTDOMAIN\' ); ?></p><?php
endif; // If $i > 1

else : // or, if comments are not allowed:
    if ( ! comments_open() ) : 
    ?>
        <p class="nocomments"><?php _e( \'Comments are closed.\', \'YOUR_THEMES_TEXTDOMAIN\' ); ?></p>
    <?php 
    endif; // end ! comments_open() 
endif; // end have_comments() 
?>
Ad当前循环:

不需要$counter = 2; (无处调用)。

如果你已经$comments_arr, 为什么不简单:

$comments_arr = sort( $comments_arr); 
$comments_arr = array_pop( $comments_arr ); 
$comments_arr = usort( $comments_arr );

$comments_arr = unset( $comments_arr[0] ); 
$comments_arr = usort( $comments_arr );

结束

相关推荐

Fix threaded comments

http://anasianscreations.co.cc/jeffman/blog/uncategorized/hello-world/我整天都在寻找解决方案,但每当你点击回复这条评论,而不是显示在下方的评论框,你就会被重定向到锚。另外,当我在这个主题中,而你回复一篇帖子时,它并不是注册为回复,而是一个普通回复。毫无疑问,我错过了什么,有人能给我指出正确的方向吗?