My better half was complaining that she can’t find a suitable plugin for displaying random posts on her sidebar. I tried to look myself, and there were some references to the plugin but nowhere to be found. One good plugin I found is Random categories with random posts by Mike Stickel but it uses categories which is not what we are looking for. Also, it requires tinkering with PHP codes which is not suitable for less technical bloggers.
So I went to analyze his code for a little while. What the heck, I’ll just create a simple widget version with no categories involved. So I took about 30 minutes to write this simple code with not so many options. It is a widget and configurable in the Sidebar Widgets page:
- Widget title: the title of the widget
- List types: ul for bulleted list, p for paragraph, br for paragraph with line breaks
- Before title and After title: you have to find out what your theme uses before and after the widget headers. A simple way to do this is to identify a currently existing widget in your site and viewing the source. Find the title and see what is printed before and after. For example it might show as <h2>Widget Title</h2> which is used by most themes.
- Post count: Number of random posts you would like to be displayed
Basically that’s it. It’s really a simple widget.
I don’t like to reinvent the wheel but since I can’t find any I just have to create one myself. Most probably I will have not so much time to maintain this plugin, but it is suitable if you are looking for a (very) simple plugin to display random posts.
You can download it from WordPress Plugins Directory: Random Posts Widget, or view online here: randomposts.php
Current Version: 1.5.0
Installation
Copy the file to the wp-content/plugins/widgets directory and activate it in the Plugins page. Then drag and configure it in the Sidebar Widgets page.
Warning: Will only work on widgets enabled blogs.
Change Log
- 07-May-2007: Fixed a bug of displaying widget before and after tag
- 14-Jun-2007: Fixed a bug where pages are also selected. Now it only displays posts.
- 26-Jun-2007: Removed before and after configuration options, now taken from theme settings. Was broken for some themes with embedded class in the header tags. Reported by Guohua. Thanks.
- 03-Aug-2007: Overhauled entire engine to optimize queries. This has been tested on a test blog with 50,000 posts on an old machine (Pentium III 600MHz) in maximum 3 seconds. Also removed duplicated results and added category to choose.
- 04-Aug-2007: Fixed a bug where wrong permalink was displayed.
- 10-Aug-2007: Fixed a bug where if 1 post count is selected an error occurred.
- 27-Sep-2007: Added ability to detect database version (WordPress 2.3 has database changed) while maintaining backward-compatibility with 2.2.x
Hello! I had your plugin installed, but when I upgraded to 2.3, it stopped working.
Any ideas why this might be the case? Is this a known problem?
Hi Evan – yes this is expected because of changes in WordPress 2.3. I am looking into the matter now.
Evan – amazingly I don’t have any error on my newly upgraded WordPress 2.3 on my development server.
I need to know the exact errors you see, please.
Here’s the content of the error, all appearing on my front page. “From the vault” is my title for the Random Posts Widget, and the error appears above it.
WordPress database error: [Table ‘evan_wrdp1.wp_post2cat’ doesn’t exist]
SELECT wp_posts.ID FROM wp_posts, wp_post2cat WHERE wp_posts.post_status = ‘publish’ AND wp_posts.post_type = ‘post’AND wp_post2cat.post_id = wp_posts.ID AND wp_post2cat.category_id = 9
Warning: array_rand() [function.array-rand]: Second argument has to be between 1 and the number of elements in the array in /home/evan/public_html/wp-content/plugins/randomposts.php on line 87
WordPress database error: [You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘)’ at line 1]
SELECT wp_posts.post_title, wp_posts.ID FROM wp_posts WHERE)
From the Vault
Evan: I’ve updated the plugin to version 1.5.0 and tested it here on WP 2.3: http://homedev.romantika.name/wp-2.3/ and here on 2.2.2: http://homedev.romantika.name/randomposts/
Please download it and let me know if you still encounter issues 🙂
Everything works awesomely now! Thank you so much!
I’m looking for a way to show 2 widgets on my site with 2 different categories. Is there a way to do this?
Thanks for the very helpful plugin!
Is it possible to install this on a non-Wordpress site but linking to a WordPress Blog. In other words, I want to display random posts of my blog on a completely different site that is not a blog and does not have WordPress installed.
Hi there.
I was wondering on if there could be an option for an excerpt (Y/N) with a selectable X number of words. The excerpt would be in plain text. I could be nice for those with little on their sidebar. Thanx for a great plugin
Works flawlessly on my site! Superb plugin!
hai ady..thanks for this plugin..i tested in my WP2.5..look great and working fine..
First off, GREAT plugin!
Would it be possible to put this in the body of my blog? Actually insert it in the HTML? I’d love to able to put this at the bottom of my posts. Is there any way I can do this?