Nem tűnik bonyolultnak a feladat, de sajnos a WordPress nem képes erre. Vagy véletlenszerűen jelenít meg 3 cikket, vagy valamilyen szempont alapján az első vagy utolsó hármat.
A feladat, hogy ezt a két módszert ötvözzük, a legújabb 3 bejegyzést véletlenszerű sorrendben.
Először adjuk hozzá a sablonunk functions.php fájljához a következő sorokat:
add_filter( 'the_posts', function( $posts, \WP_Query $query ) { if( $pick = $query->get( '_shuffle_and_pick' ) ) { shuffle( $posts ); $posts = array_slice( $posts, 0, (int) $pick ); } return $posts; }, 10, 2 );
Majd illesszük be a következő kódot a sablonunkba:
<?php $args = array( 'post_type' => 'psot', 'post_status' => 'publish', 'posts_per_page' => 3, 'order' => 'DESC', 'orderby' => 'date', '_shuffle_and_pick' => 3, 'suppress_filters' => false ); $editions = get_posts( $args ); foreach( $editions as $post ) : setup_postdata($post); ?> <a href="<?php the_permalink(); ?>"><?php the_post_thumbnail('home-sm'); ?></a> <h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3> <?php endforeach; ?>
Itt találtam: StackExchange
WordPress kódex