Frage

Ich muss Kommentare aus dem zweiten anstellen und die erste weglassen. Mit Beiträgen habe ich es mit "Offset" gemacht, aber ich kann nichts Ähnliches für Kommentare finden. Da ich Threaded -Kommentare verwende, muss der zweite Kommentar, der kein Kind ist (nur übergeordnete Kommentare). Ich verwende WP_List_Comente mit einem Rückruf.

Edit2: Dies ist der tatsächliche Kommentar.Php Code, nach Antworten:

      <?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(); ?>

Ergebnis: Kommentare werden nicht mehr von Karma (comment_comparator function) bestellt und der erste Kommentar (Kommentar mit Top Karma, den ich verstecken möchte) noch angezeigt wird.

War es hilfreich?

Lösung

<?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() 
?>

Anzeigen Sie Ihre aktuelle Schleife:

Kein Bedarf für $counter = 2; (Nirgendwo genannt).

Wenn Sie schon Ihre haben $comments_arr, warum nicht einfach:

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

ODER

$comments_arr = unset( $comments_arr[0] ); 
$comments_arr = usort( $comments_arr );
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit wordpress.stackexchange
scroll top