Due to the natural structure of blogs, articles end up being buried down once they get old. Most new users join and pick up from the moment they join, and they never bother going back to one of your good posts. One of the easiest way to give a new life to your older posts is by displaying them in the sidebar. In this tutorial, we will share how you can display random posts in your WordPress.
All you have to do is open your sidebar.php, or any other file you like to add it in and paste the following code:
<li><h2>Random Post</h2>
<ul>
<?php $posts = get_posts('orderby=rand&numberposts=5'); foreach($posts as $post) { ?>
<li><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a>
</li>
<?php } ?>
</ul>
</li>
You can customize the styling around it. If you want to display more than 5 posts, simply change the number 5 to the number of your choice.







This can be implemented for the normal pagination of the blog posts? I just want to see that in a random order. Also, If I have more than one page of that random posts (10 per page) I must don’t see posts in the second page that are present on the first.
Are here a possibility to do that?
No. If your order is random, then it defeats the purpose of pagination.
How to display summary for each random post title?
Just add the following code after the_title code.
Bang on Target, thanks for this article. Rather than rand you can also use
offsetto show different posts.How can i display the post in horizontal manner
FIX
Just remove the and tags from the code
I have used the same code but it is displaying same posts for 5 times.. what could be the issue..
@rajkanuri The issue is within your theme. Usually when a query is not resetted properly, this will follow that query. It is mostly caused by recent posts widget, but its not limited to that.
@mindrise If you use the loop and then query_post, you should be able to do this.
how can I show only a list of posts that came before the current post your on. example:
if you post #5 the sidebar list posts 1-4 sam as if you go to post 9 side bar will list posts 1-8.
any idea?
How would you add the parameter to display posts only in a specific category as well as randomly and 5 at a time?
You can add cat=categoryid << and then keep the other code the same.
I am considering doing this same thing, but not in sidebar, I wish to place it right after the current post ends.
Good idea
By the way, instead of displaying the_title, you can just put “Read a Random Post” and limit it to show only one. Create a nice button and you’ve got a “read a random post button” like you see on some special navigation bars sometimes.
helpful post, thanks a lot..