Frage

WP -Schleifen werden häufig verwendet, um Listen von Beiträgen in WordPress zu drucken:

<?php $loop = new WP_Query( array( 'post_type' => 'ff', 'ff' => 'show_ff', 'orderby' => 'menu_order', 'order' => 'ASC' ));
     while ( $loop->have_posts() ) : $loop->the_post(); ?> 

     <!-- here we're going to have all posts from show_ff category of ff type. -->

     <?php endwhile; ?>  

Gibt es eine Möglichkeit, zum Beispiel 3 erste Beiträge zu zeigen, dann ein Element (Div in meinem Fall) und erneut 3 nächste Beiträge?

Ich weiß, ich könnte 6 Schleifen in jedem Div machen, aber vielleicht gibt es eine andere Möglichkeit, diesen Code zu brechen? Vielleicht einige wenn in der Schleife Schleifen? Hier ist mein Konzept:

(...)
    while ( $loop->have_posts() ) : $loop->the_post(); 
     echo '3 first posts';
     echo '<div class="special"></div>';
     echo '3 last posts';
    endwhile; ?>  
War es hilfreich?

Lösung

Ich glaube nicht, dass ich voll und ganz erfasst habe, wie Sie dies funktionieren sollen, aber wenn ich für einen Moment davon ausgehe, dass Sie nach dem dritten Ergebnis in der Schleife ein zusätzliches Markup einfügen möchten, solange die Schleife mindestens 6 Beiträge hat. .

Beispiel

Fügen Sie nach dem dritten Beitrag ein zusätzliches Markup ein, wenn die aktuelle Iteration mindestens 6 Beiträge hat

<?php
if( $loop->have_posts() ) :

    //$post_count = $loop->found_posts; // <-- think this is the total, corrected below
    $post_count = $loop->post_count; // should be the result count for the current page
    $loop_count = 0;

    while ( $loop->have_posts() ) : $loop->the_post(); 
        $loop_count++;
        ?>

        <!-- your regular loop markup, eg. title, content, etc.. -->

        <?php
        if( $post_count >= 6 && $loop_count == 3 ) :
            ?>

            <!-- extra markup to put in when it's the end of the third post of this loop -->

            <?php
        endif;
    endwhile;
endif;
?>

Auf diese Weise vermeiden Sie die Notwendigkeit, einen Offset zu verwenden, und können bei Bedarf Paging verwenden. Ich habe den Code nicht getestet, aber ich habe bereits zahlreiche Beispiele wie diese angegeben. Lassen Sie mich einfach irgendwelche Probleme wissen und ich werde den Code erneut untersuchen (und testen).

Andere Tipps

Sie können die Anzahl der Beiträge in der ersten Schleife auf drei begrenzen:

 <?php $args = array('showposts' => 3); 
$the_query = new WP_Query($args); 
while ($the_query->have_posts()) : $the_query->the_post();

Zeigen Sie dann Ihre DIV und zeigen Sie dann erneut 3 Beiträge mit dem Parameter "Offset", um die 3 Firsts zu verbessern:

 $args2 = array('showposts' => 3, 'offset' => 3 );
 $the_query = new WP_Query($args2); 
while ($the_query->have_posts()) : $the_query->the_post(); 

Mehr Infos in der Kodex.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit wordpress.stackexchange
scroll top