Array Chunks und Einfügen von variierendem HTML in WP_Query

Ich versuche, die letzten 5 Posts aus meinem Blog auszugeben. Ich möchte, dass jede Post-Miniaturansicht divs im folgenden Format auffüllt.

Ich habe diesen Code von einem anderen Beitrag mit ein paar Änderungen erhalten, aber ich treffe nicht das Zeichen.

  5, 'orderby' => 'date', 'order' => 'DESC' ]; // Fetch posts $query = new WP_Query( $args ); if( $query->have_posts() ) { while ( $query->have_posts() ) { $query->the_post(); // Collect all items into a temp array $tmp[] = sprintf( '', get_permalink(), get_the_post_thumbnail( get_the_ID(), 'large' ) ); } $tmpp[] = sprintf( '', get_permalink(), get_the_post_thumbnail( get_the_ID(), 'large' ) ); } // Split the divs into rows of 2 items $rows = array_chunk( $tmp, 2 ); // Split the second chunk of divs into rows of 3 items $rowss = array_chunk ($tmpp, 3); // Housecleaning unset( $tmp ); unset( $tmpp); wp_reset_postdata(); // Output the rows foreach( $rows as $row ){ printf( '
https://wordpress.stackexchange.com/questions/216480/array-chunks-and-inserting-varying-html-in-wp-query/%s
', join( '', $row ) ); } foreach( $rowss as $roww ){ printf( '
https://wordpress.stackexchange.com/questions/216480/array-chunks-and-inserting-varying-html-in-wp-query/%s
', join( '', $roww ) ); } ?>

Leider funktioniert es nicht richtig. Was es ausgibt ist das:

 
living-room-pictures
LED-flushmount
165912
165961
IMG_9944-1300x866
IMG_9944-1300x866

Solutions Collecting From Web of "Array Chunks und Einfügen von variierendem HTML in WP_Query"

Das ist eine ziemlich komplizierte Herangehensweise. Warum nicht einfach einen Zähler hinzufügen? So was:

 $i=1; echo '
'; if( $query->have_posts() ) { while ( $query->have_posts() ) { $query->the_post(); if ($i < 3) $class = "large-6 medium-6 small-12 columns" else "large-4 medium-4 small-12 columns"; echo '
' ... output your post ... echo '
' if ($i=2) echo '
'; $i = $i+1; } } echo '
';

Hier ist ein alternativer Vorschlag:

 if( $query->have_posts() ) { while ( $query->have_posts() ) { $query->the_post(); // Collect all items into a temp array $tmp[] = sprintf( 'https://wordpress.stackexchange.com/questions/216480/array-chunks-and-inserting-varying-html-in-wp-query/%s', get_permalink(), get_the_post_thumbnail( get_the_ID(), 'large' ) ); } wp_reset_postdata(); // Display rows 1-2 the_wpse_rows( $tmp, $from = 0, $number = 2, $outer_class = 'row full', $inner_class = 'large-6 medium-6 small-12 columns' ); // Display rows 3-5 the_wpse_rows( $tmp, $from = 2, $number = 3, $outer_class = 'row full', $inner_class = 'large-4 medium-4 small-12 columns' ); unset( $tmp ); } 

wo definieren wir unsere Hilfsfunktion als:

 function the_wpse_rows( Array $data, $from, $number, $outer_class, $inner_class ) { $inner_class = esc_attr( $inner_class ); $outer_class = esc_attr( $outer_class ); if( $rows = array_slice( (array) $data, $from, $number ) ) printf( "
https://wordpress.stackexchange.com/questions/216480/array-chunks-and-inserting-varying-html-in-wp-query/%s
", join( "
", $rows ) ); }

array_slice() wir array_slice() anstelle von array_chunk() .