Beiträge werden nicht korrekt durchlaufen

Ich versuche, die Seite haben 3 Beiträge in jeder Zeile, und dann nach 3 Spalten (12 Beiträge) zeigen die Ajax laden mehr Taste. Im Moment taucht nur ein Beitrag auf. Ich weiß nicht, wie man alles richtig durchläuft. Kann jemand Hilfe anbieten? Danke im Voraus.

 12, 'paged' => get_query_var('paged', 1) ] ); if ( $the_query->have_posts() ) { ?> 

<a class="post-title" href="https://wordpress.stackexchange.com/questions/252035/posts-are-not-looping-through-correctly/">

<a class="moretext" href="https://wordpress.stackexchange.com/questions/252035/posts-are-not-looping-through-correctly/">Read more
<?php if(get_query_var('paged') max_num_pages) { load_more_button(); } } elseif (!get_query_var('paged') || get_query_var('paged') == '1') { echo '

Sorry, no posts matched your criteria.

'; } wp_reset_postdata(); get_footer();

AKTUALISIERT

  12, 'paged' => get_query_var('paged', 1), 'cat' => 10, )); if ( $the_query->have_posts() ) { // display #ajax wrapper only if we have posts echo '
'; while($the_query->have_posts()) { $the_query->the_post(); ?> <article >

<a class="post-title" href="https://wordpress.stackexchange.com/questions/252035/posts-are-not-looping-through-correctly/">

<a class="moretext" href="https://wordpress.stackexchange.com/questions/252035/posts-are-not-looping-through-correctly/">Read more

<a class="post-title" href="https://wordpress.stackexchange.com/questions/252035/posts-are-not-looping-through-correctly/">

<a class="moretext" href="https://wordpress.stackexchange.com/questions/252035/posts-are-not-looping-through-correctly/">Read more

<a class="post-title" href="https://wordpress.stackexchange.com/questions/252035/posts-are-not-looping-through-correctly/">

<a class="moretext" href="https://wordpress.stackexchange.com/questions/252035/posts-are-not-looping-through-correctly/">Read more
<?php }//end while echo '
'; // close the #ajax wrapper after the post list if(get_query_var('paged') max_num_pages) { load_more_button(); } } else { // if there are no posts echo '

Sorry, no posts matched your criteria.

'; }//end if get_footer(); ?>

Solutions Collecting From Web of "Beiträge werden nicht korrekt durchlaufen"

Ich habe gerade den folgenden Beispielcode getestet:

 < ?php $the_query = new WP_Query( array( 'posts_per_page' => 12, 'paged' => get_query_var('paged', 1) )); if ( $the_query->have_posts() ) { // display #ajax wrapper only if we have posts echo '
'; while($the_query->have_posts()) { $the_query->the_post(); ?>
>
< ?php the_post_thumbnail('medium-thumbnail'); ?>

< ?php the_title(); ?>

< ?php echo get_the_excerpt(); ?>

< ?php get_template_part( 'share-buttons' ); ?> Read more < ?php comments_popup_link ('No Comments', '1 Comment', '% Comments', 'comment-count', 'none'); ?>
< ?php }//end while echo '
'; // close the #ajax wrapper after the post list if(get_query_var('paged') < $the_query->max_num_pages) { load_more_button(); } } else { // if there are no posts echo '

Sorry, no posts matched your criteria.

'; }//end if ?>

Der

sollte die ganze Post-Liste umhüllen und nicht jeden einzelnen Post, richtig? Dann sollte dieser Container außerhalb der While-Schleife sein!

Wenn Sie keinen Post-Typ in WP_Query angeben, wird standardmäßig der Typ “any” verwendet. Also stell sicher, dass du das willst!

‘any’ – ruft jeden Typ außer Revisionen und Typen ab, wobei ‘exclude_from_search’ auf ‘true’ gesetzt ist.

Im Tag

sollten Sie auch < ?php post_class(); ?> < ?php post_class(); ?> statt class="post" , um automatisch weitere hilfreiche classn zu erhalten. (einschließlich aktueller Post-Typ, Status und Kategorie)

Aktualisieren:

Ich habe den aktualisierten Code oben in meine Antwort eingefügt. Es funktioniert beim Anzeigen der Beiträge. Es zeigte jedoch nur einen Post in Folge, also fügte ich 2 weitere Col-md-4 hinzu. Aber jetzt wiederholt es den gleichen Beitrag dreimal. Wie würde ich das beheben? Auch die Ajax-Taste wird nicht angezeigt.

OK also, zuerst … die Schleife hat nichts zu tun, wie Sie die Posts auf dem Frontend zeigen werden (in einem Raster oder direkt untereinander) Ich sehe, dass Sie versucht haben, 3

Elemente in der while Schleife hinzuzufügen. Das ist falsch , Sie definieren hier nur die Vorlage von 1

, und alle folgenden werden dasselbe verwenden.

Mit CSS legen Sie fest, wie die Artikel im Frontend angezeigt werden. Verwenden Sie zum Beispiel eine% Breite auf den Artikelelementen, um 3 in einer Reihe anzuzeigen. (100% / 3)

Vielleicht können Sie auch vorhandene CSS-classn verwenden. In Ihrem Code sehe ich

, also scheint dies bereits eine class eines Grid / Column-Systems zu sein. Schauen Sie sich also in den Dokumenten des Themas um, das Sie verwenden. Wenn dies bereits eine class zum Anzeigen von 3 Spalten hintereinander ist, überschreibt vielleicht ein CSS die Breite.

Ja, du brauchst nur 1 Artikelelement und dann CSS.

Ihr Code hat keine while Schleife

 if ( $the_query->have_posts() ) { while($the_query->have_posts()){ $the_query->the_post(); //your html here } //code for load more } 

Ich denke, du solltest auch post_type erwähnen, wie:

 $the_query = new WP_Query( array( 'post_type' => 'yourpost_type' 'posts_per_page' => 12, 'paged' => get_query_var('paged', 1) ) );