Random sorting in GeoDirectory is random per day, so reloading the page shows the same order. GeoDirectory seeds the random order with a value that it keeps for 24 hours. Without that, page 2 of the results could repeat listings from page 1 or skip others, because every page would be shuffled again.
This applies to random sorting on the search and category pages and to sort_by="random" on GD > Listings, for example:
[gd_listings post_type="gd_place" post_limit="12" sort_by="random"]
Change the order more often
The seed passes through the geodir_rand_seed filter. This snippet gives a new order every hour. Add it with the Code Snippets plugin or your child theme’s functions.php.
add_filter( 'geodir_rand_seed', 'my_gd_hourly_rand_seed' );
function my_gd_hourly_rand_seed( $seed ) {
return (int) floor( time() / HOUR_IN_SECONDS );
}
You can return a new number on every page load, for example with wp_rand(), but then paging is no longer reliable. That is fine for a single block of featured listings with no paging.
Still seeing the same listings?
A page cache stores the whole page, including the order of the listings, until the cache is cleared. If you use a caching plugin or a host cache, the order only changes when the cache refreshes. You can exclude the page from the cache if the order matters more than speed.
There is more on this in Change GeoDirectory random sorting. To add random as a sort option for visitors, see Changing or adding new sorting options.