WordPress Snippets

How To Display Posts in a Random Order in WordPress

By ThemesDNA2 min read

Share:

By default, the blog homepage of your WordPress website displays all published posts (not pages) in reverse chronological order, with the most recently published post at the top. This is for the benefit of returning visitors who come to read your latest posts, as well as new visitors who are unlikely to be pleased with having to go through several steps to see your latest posts.

But if you don't like this "sort posts by published date" behavior and need to "sort posts by random order", then select a code given below according to your need and add it into your theme's "functions.php" file.

Code 1:

Sort Homepage Posts Randomly:

function themesdna_sort_homepage_posts_by_random_order( $query ) {
    if( $query->is_main_query() && ! is_admin() && $query->is_home() ) {
        $query->set( 'orderby', 'rand' );
        $query->set( 'order', 'DESC' );
    }
}
add_action( 'pre_get_posts', 'themesdna_sort_homepage_posts_by_random_order' );

Code 2:

Sort Homepage, Archive Pages (Category Pages, Tag Pages,...), Search Pages Posts Randomly:

function themesdna_sort_posts_by_random_order( $query ) {
    if( $query->is_main_query() && ! is_admin() && ( $query->is_home() || $query->is_search() || $query->is_archive() ) ) {
        $query->set( 'orderby', 'rand' );
        $query->set( 'order', 'DESC' );
    }
}
add_action( 'pre_get_posts', 'themesdna_sort_posts_by_random_order' );

Note: If you don't like to edit the functions.php file of your theme, you can use a plugin like "Code Snippets" to run custom code snippets on your site.

Premium WordPress themes Made for WordPress   /   Ready for your story

Ready to Build?

Your next great website starts here.

Build more websites with one flexible collection—and keep every theme for life.

  • 56+ themes
  • Lifetime updates
  • Unlimited websites
  • No renewals

The complete collection

$75

One payment. No renewals.

Get the Themes Bundle — $75Purchase terms