Zeigen Sie jeden Beitrag im Blog MIT Kommentaren auf der Seite an

Ich versuche, eine Seite zu erstellen, auf der alle Posts im Blog angezeigt werden, wobei die Kommentare zu jedem Post unter dem jeweiligen Post aufgeführt sind. Im Internet habe ich herausgefunden, wie man eine Seitenvorlage mit dem folgenden Code erstellt:

 -1); $posts= get_posts( $args ); if ($posts) { foreach ( $posts as $post ) { setup_postdata($post); Echo "

"; the_title(); Echo "

"; Echo "

";the_time('jS F Y'); Echo "

"; the_content(); } } ?>

Das funktioniert und ist glücklich damit. Aber ich bin ratlos, wie man die einzelnen Postkommentare auch erscheinen lassen kann. Alles, was ich bisher versucht habe, funktioniert nicht. Jede Hilfe würde sehr geschätzt werden.

Vielen Dank!

Solutions Collecting From Web of "Zeigen Sie jeden Beitrag im Blog MIT Kommentaren auf der Seite an"

Kurze Antwort: Add comments_template(); unter deinem the_content() .

Aber es gibt einen besseren Weg, dies zu tun, der alle Formatierungen und Stile, die Sie in Ihrem Hauptblog haben, übernehmen wird. Vielleicht willst du das aber nicht, also ignoriere den Rest wenn nötig.

Hier ist der verbesserte Schleifencode:

 $args = array( 'numberposts' => -1); $query = new WP_Query($args); if ($query->have_posts()) { while ($query->have_posts()) { $query->the_post(); get_template_part('content', get_post_format()); } wp_reset_postdata(); } else { get_template_part('content', 'none'); } 

Das ist eine ziemlich einfache WordPress-Schleife, nichts wirklich kompliziertes, und Sie hatten fast genau das mit Ihrem bereitgestellten Code. Anstatt den Inhalt direkt auszugeben, lädt dieser Code die Vorlageteile genau wie die Schleife in index.php , die den Aufruf von comments_template() wenn es ein halbwegs anständiges Thema ist.

Hier ist die aktualisierte verbesserte Schleife, die für ältere Themen funktionieren sollte, die keine content.php :

 if ($query->have_posts()) { while ($query->have_posts()) { $query->the_post(); the_content(); comments_template(); } wp_reset_postdata(); } else { echo 'No posts found.'; } 

Aber Ihr ursprünglicher Code tut genau dasselbe, nur etwas anders organisiert. Ich würde jedoch vorschlagen, einen wp_reset_postdata() Aufruf zu Ihrem Code hinzuzufügen, damit Sie die ursprüngliche Abfrage wiederherstellen können. Wahrscheinlich wird es nicht weh tun, es auszulassen, aber es wird ein mächtiger harter Bug sein, den es in Zukunft zu finden gilt.