How to selectively display widgets on specific posts or pages

WordPress by default display the widget every where. So if you want to display or hide the  widgets based on rules then you will need to make use of plugins.

In this tutorial I will cover 4 plugins which can be used to hide or display widgets in posts or pages control the widget visibility of specific post and pages. At the end o this post I will also share a code snippet for controlling the widget visibility based on conditional logic.

1. Using Widget Logic Plugin

This is a very powerful plugin. It works by adding an extra logic field to every widget.  It lets you control the pages that the widget will appear on . Refer to this screenshot.

So for example if you want the search widget to only appear on home page , then you will simply use the is_home() tag in the logic field. Similarly if you DONT want to display the search widget on home page, you will use !is_home() tag in the logic field.

This can be configured in a lot of ways.  For example, you can display / hide widgets on certain categories , you can display widget on a certain posts etc. It is a very powerful plugin and since it uses conditional tags,  it can be a bit difficult for newbies and non technical users.

2. Using Widget Context Plugin

Widget context is very similar to Widget logic. The main difference is the user interface.  The widget Context gives you a friendly user interface to control the widget visibility. Refer to this screenshot

It is possible to display / hide widgets on specific posts, pages, categories , url etc.  It is a beginner friendly plugin as users dont require knowledge of conditional logic to operate the plugin.  So, if you are an absolute beginner , I recommend you use the Widget context plugin

3. Using Dynamic Widgets Plugin

This is another popular plugin which allows you to define visibility through a user interface.  The plugins opens a separate page to configure the visibility rule. This can be a minor inconvenience. Refer to this screenshot

Apart from that it is a good plugin and supports rules like specific categories, display on a url, specific posts, archive pages etc.

4. Using Jetpack Plugin

If you are using Jetpack plugin, then you can utilize the inbuilt widget visibility feature to control the widget display. It gives you a user friendly interface to configure the widget visibility. Visibility can be controlled based on category, post , pages, users role, date etc. Refer to this screenshot

There are other plugin like Restrict widgets and Widget Manager Light. But I am not covering them in this tutorial as they are not as popular as the above four plugins.

Code Snippet

In case you dont want to use plugin then you may use the following snippet to control the widget display.

add_filter( 'widget_display_callback', 'spice_display_widget_logic',10,2);

function spice_display_widget_logic( $instance, $widget) {  
  
  if ( $widget->id == 'calendar-4') { // we are controlling the visibility of calendar-4 widget.    
	
	if ( is_page('24')) {    // calendar-4 widget will NOT display on page with id 24          
	  return false;     }  
  }
}

This snippet ensures that the calendar-4 does not appear on a page having id 24.  Refer to this tutorial to understand how to get widget id.

You can modify the snippet to control widget visibility based on post types,  user role, etc.

Even though the above snippet works , I would not recommend using the snippet unless you are a developer. If you are non-technical user, simply use any of the above mentioned plugins.

If you have any questions,ask in the comments.

 

Did you enjoy this article?
Get Awesome with WordPress. Subscribe and get awesome stuff delivered straight to your inbox.
I agree to have my personal information transfered to Mad Mimi ( more information )
About Ankit

This is the author box where I get to brag about myself. So here it goes.


My name is Ankit and I am an entrepreneur. I currently run a couple of internet business. If you want to know more about me and my business then check out my personal website .

I love wordpress and I have started SpiceWp to share useful tips and tricks for wordpress. I have also developed and released 10 wordpress plugins till date. My goal with SpiceWp is to take it to a hundred thousand visitors a month mark.

If you want to join me in this adventure then lets talk.

Trackbacks

  1. […] out this post for a more comprehensive collection of plugin for controlling widget […]

Speak Your Mind

*