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
