Using Widget Logic Plugin

The widget logic plugin allows you to show different content in widget areas based on rules on your WordPress Website.

It has multiple uses for example

  • showing additional navigation in a particular section of a large website.
  • adding a targeted sign up forms for particular pages and posts in a category.
  • showing the shopping cart only on product pages
  • adding affiliate links only for posts in a particular category

Here are some examples to help you add the code to the widget to have it showing only where you want it on your website.

On a particular page or pages

Single pages

Only on the front page of your website

is_front_page()

Only on particular pages

For example, the widget will display on the page with slug sample-page and on the page with slug sample-page-2

The || means or ie is page sample page or is sample page 2

is_page('sample-page') || is_page('sample-page-2')

or you can use the following

is_page(array(1,5))

is_page()  can take id’s, page names, slugs and even arrays with multiple values – see the documentation.

On all pages except a particular page

For example, this will display on all page except the page with slug sample-page (note the "!" at the beginning)

!is_page('sample-page') 

On a page and all its descendants

To display a widget on a page and all descendant pages ie child pages and child pages of child pages.
This can be useful for large websites that have complex navigation. For example to display a custom navigation menu in one section of a website.
In the following example, the widget will display on the page with id 2953 and all pages that have the page with id 2953 as its ancestor

global $post; return (in_array(2953,get_post_ancestors($post))) || (is_page('2953'));

For posts

A particular post

is_single('Welcome')

All posts with a particular tag

is_tax('tag')

In particular category page

is_category(array(5,9,10,11))

Is a single post in a category

is_single() && in_category('seo') — single post that’s in the category with this slug

On a category archive page and all single posts in that category

is_category('videos') || (is_single() && in_category('videos'))

Is a single post and in category internet marking or is a single post in category portfolio

is_single() && in_category('internet-marketing')|| is_single() && in_category('portfolio')

Is not page 1 nor 2 and not a single post with id 3 nor 4

!is_page( array( 1,2) ) && !is_single( array( 3,4) )

Show a widget on child pages, not top-level pages

global $post; return ($post->post_parent != 0);

All child pages of page 77

global $post; return (in_array(77,get_post_ancestors($post)));

For Custom Post Types

is a single post in the Custom Post Type Jetpack Portfolio

is_single()&&(get_post_type()=='jetpack-portfolio')

or

get_post_type()=='jetpack-portfolio'

For Woocommerce

Products in Woocommerce are a custom post type called product. Therefore the following would show a widget only on single product pages

is_single()&&(get_post_type()=='products')

All single product pages ie is a single post  and the custom post type is "product"

Woocommerce has its own conditional filters

is_product()

which is the equivalent of

is_single()&&(get_post_type()=='products')

On a Woocommerce Product Category page

is_product_category('clothing')

is_product_category( array( 'shirts', 'games' ) )

is_product_tag( 'shirts' )

Read More

Looking to get a professional WordPress Website or just need some help with website creation? Contact me.

Light BLUE divider 1

Contact me today to discuss your website project

Leave a Reply

Your email address will not be published. Required fields are marked *