How to show random posts in wordpress sidebar
Tags: wordpress, beginners, webdev, tutorial
Published: 2022-05-04 11:54:28

Showing wordpress posts in sidebar is a great way to increase the number of page views in our website or blog. It also helps our website to increase the page rank, SEO and website rank.

In wordpress we can show the posts in many ways in wordpress sidebar or content page. For an example we can show posts in wordpress by date, posts in wordpress by category, posts in wordpress by views, posts in wordpress by likes, posts in wordpress by tags, posts in wordpress by number shares on social media, posts in wordpress by random order etc. Here we will show our wordpress posts by random order with and without plugin.

## Show Random Posts in WordPress Sidebar With Plugin
If you want to show the wordpress posts in sidebar by random order, or by category or tags, or by date then you can use the wordpress plugin [Advanced Random Posts Widget](https://wordpress.org/plugins/advanced-random-posts-widget/). This plugin will enable a custom, flexible and advanced random posts. It allows you to display a list of random posts via shortcode or widget with thumbnail, excerpt and post date, also you can display it from all or specific or multiple taxonomy.

## Show Random Posts in WordPress Sidebar Without Plugin
If you want to show your random posts in wordpress sidebar without plugin. Then paste the code given below in your functions.php file.

```php
	function rmc_rand_posts() { 

		$args = array(
			'post_type' => 'post',
			'orderby'   => 'rand',
			'posts_per_page' => 5, 
		);

		$the_query = new WP_Query( $args );

		if ( $the_query->have_posts() ) {

			$string .= '<ul>';
			while ( $the_query->have_posts() ) {
				$the_query->the_post();
				$string .= '<li><a href="'. get_permalink() .'">'. get_the_title() .'</a></li>';
			}
			$string .= '</ul>';
			/* Restore original Post Data */
			wp_reset_postdata();
		} else {

			$string .= 'no posts found';
		}

		return $string; 
	} 

	add_shortcode('rmc_random_posts','rmc_rand_posts');
	add_filter('widget_text', 'do_shortcode');
```
In the code above we have the shortcode rmc_random_posts. Now just add the text widget and paste the code **[rmc_random_posts]** in your wordpress sidebar. You can also add this shortcode in your wordpress template. You can read this article how to use shortcode in template with how to create custom plugin in wordpress.

## Code Explanation:

- In the code above we have created the function **rmc_rand_posts** in which we have run our custom wordpress query.
- We have add rmc_rand_posts function in our custom shortcode rmc_random_posts.
- We also used the function [add_shortcode](https://codex.wordpress.org/Shortcode_API) which creates the shortcode **[rmc_random_posts]**.
- Here we added the [wordpress filter](https://developer.wordpress.org/reference/functions/add_filter/#:~:text=WordPress%20offers%20filter%20hooks%20to,by%20returning%20a%20new%20value.) widget_text which filters the content of text widget. And we applied the [widget_text](https://developer.wordpress.org/reference/hooks/widget_text/) filter to [do_shortcode](https://developer.wordpress.org/reference/functions/do_shortcode/) which removes any html tags from our shortcode.
- We used the post_type is post and you can use your own custom post type. Read our article [custom post type in wordpress](https://www.w3courses.org/how-to-create-custom-post-type-in-wordpress-without-plugin/).
- We are fetching posts orderby rand.
- If you want to show custom posts in wordpress sidebar, show posts in wordpress by taxonomy, show posts in wordpress by category, tags, comments shares, author etc. Then Read in detail [WP_Query](https://developer.wordpress.org/reference/classes/wp_query/) in wordpress.

---
Please like share subscribe and give positive feedback to motivate me to write more for you.

For more tutorials [please visit my website](https://www.w3courses.org/tutorials/).

Thanks:)
Happy Coding:)