Wie man das Kommentarwidget, das mit den Themenkommentaren in Konflikt steht, stoppt

Ich habe ein Widget, das die neuesten Kommentare für eine WordPress-Site abruft und anzeigt. Es zeigt den Kommentarautor, Gravatar, Kommentar und Datum / Uhrzeit an.

Die function zum Anzeigen der Kommentare befindet sich in einer class.

Das Problem, das ich habe, ist, dass jedes Mal, wenn ich dieses Widget anzeigen, es vermasselt oder Konflikte mit der Anzahl der Kommentare, die für mein WordPress-Theme zurückgegeben werden.

Beispiel. Wählen Sie im Widget 5 Kommentare. Auf einer Seite auf der Website habe ich einen Beitrag mit 8 Kommentaren. Wenn das Widget aktiviert ist, werden nur 6 dieser 8 Kommentare angezeigt.

Wenn ich das Widget deaktiviere, werden alle Kommentare angezeigt.

Dies ist die function zum Anzeigen der Kommentare

/** * Retrieves the latest comments * * Shows a list of latest comments ordered by the date added * * @param int $limit - The number of posts to display * @param int $chars - The number of characters to display for the post body * @param int $size - Size of the comment Gravatar * @param boolean $displayCommentsIcon - Whether to display the comment Gravatar * */ public function aaw_get_latest_comments($display_comments_icon = true, $comments_icon_size = 50, $comments_amount = 5, $comments_chars = 35, $display_comments_date = true) { global $comments; $com_excerpt = ''; $aaw_comments = get_comments(array('number' => $comments_amount, 'status' => 'approve')); if($aaw_comments){ foreach((array)$aaw_comments as $aaw_comment){ if($comments_chars > 0) { $com_excerpt = self::aaw_snippet_text($aaw_comment->comment_content, $comments_chars); } echo '
  • '; if($display_comments_icon == 'true'){ echo 'comment_ID) ).'" title="'. __('Commented on: ', $this->hook). $aaw_comment->post_title.'">'; echo get_avatar($aaw_comment, $comments_icon_size); echo ''; } echo '
    '; echo 'comment_ID) ).'" title="'. __('Commented on: ', $this->hook). $aaw_comment->post_title.'">'; echo ''.strip_tags($aaw_comment->comment_author).': '.strip_tags($com_excerpt).'...'; echo ''; if($display_comments_date == 'true'){ echo ''.get_comment_date('j M Y',$aaw_comment->comment_ID).' '.__('at', $this->hook).' '.get_comment_date('g:i a',$aaw_comment->comment_ID).''; } echo '
    '; echo '
  • '; } } else { echo '
  • '.__('No comments available', $this->hook).'
  • '."\n"; } }

    So rufe ich die function auf:

     aaw_get_latest_comments($display_comments_icon == 'true' ? 'true' : 'false', $comments_icon_size, $comments_amount, $comments_chars, $display_comments_date == 'true' ? 'true' : 'false'); ?> 

    Zuerst dachte ich, es sei der Gravatar, der den Konflikt verursacht hat, aber ich habe ihn entfernt und es hat sich nicht geändert.

    Jede Hilfe würde sehr geschätzt werden. Vielen Dank

    Solutions Collecting From Web of "Wie man das Kommentarwidget, das mit den Themenkommentaren in Konflikt steht, stoppt"

    Sie könnten das viel einfacher so machen:

     < ?php $comments = get_comments('status=approve&number=5'); ?>  

    Ok, hier sind einige Code-Erklärungen:

    • $comments = get_comments('status=approve&number=5') -> 5 letzte Kommentare erhalten
    • get_avatar( $comment, '35' ) -> Erhalte und zeige einen Avatar mit 35x35px Größe
    • get_permalink($comment->ID) und $comment->comment_ID -> $comment->comment_ID sich den Link zum Kommentar
    • strip_tags($comment->comment_author) -> Kommentarautor anzeigen
    • wp_html_excerpt( $comment->comment_content, 35 ) -> zeigt die Kommentare bis zu 35 Zeichen an