2018.04.03. ,

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