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.