Display random posts in WordPress

By | August 25, 2011

WordPress posts may be randomly displayed using the “Get random results from a MySql table” tip placed in a simple plugin.

What this plugin does is to simply add the “RAND()” value to “ORDER BY” clause in the sql query which retrieves the WordPress posts.

/*
 * Plugin Name: Randomize posts
 * Plugin URI: http://cristian-radulescu.ro/article/display-random-posts-in-wordpress.html
 * Description: Display random posts in WordPress.
 * Author: Cristian Radulescu
 * Version: 0.1
 * Author URI: http://cristian-radulescu.ro
 */

/**
 * Set the "ORDER BY" value to RAND()
 *
 * @param string $orderby
 *
 * @return string
 */
function rand_posts_orderby_request($orderby) {
  return 'RAND()';
}

// add custom action to WordPres filters
add_action('posts_orderby_request', 'rand_posts_orderby_request');

In order to use the plugin, just place the above code in a file, upload it to your WordPress plugins directory and activate it. If you use cache related plugins it may be necessary to disable them to view the randomized posts.

4 thoughts on “Display random posts in WordPress

  1. sam2001

    I’ve been using the Rand code for a while now but i can’t get it to work with the latest version of wordpress (3.2.1) have you noticed this? do you have any fixes or alternatives?

  2. Cristian Radulescu Post author

    @igor: Just paste the code into a php file, then upload it via ftp to the wp-content/plugins directory of your WordPress installation.

Leave a Reply