Kommentare ausgefallen
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.
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 );