Title: Widgets on different pages
Last modified: August 19, 2016

---

# Widgets on different pages

 *  Resolved [AlternativePhotography](https://wordpress.org/support/users/alternativephotography/)
 * (@alternativephotography)
 * [16 years, 4 months ago](https://wordpress.org/support/topic/widgets-on-different-pages/)
 * I see a lot of good comments about Widget logic. But, I assume you have to be
   a php wizz to work with it?
    Therefore, looking for another option. Was looking
   at: [http://wordpress.org/extend/plugins/slayers-custom-widgets/](http://wordpress.org/extend/plugins/slayers-custom-widgets/)
   But apparently, only one text widget can be used? Any other recommendations?

Viewing 13 replies - 1 through 13 (of 13 total)

 *  [Robert S](https://wordpress.org/support/users/rschilt/)
 * (@rschilt)
 * [16 years, 4 months ago](https://wordpress.org/support/topic/widgets-on-different-pages/#post-1331674)
 * [@alternativephotography](https://wordpress.org/support/users/alternativephotography/),
 * [Widget Logic](http://wordpress.org/extend/plugins/widget-logic/) is a great 
   plugin and I highly recommend it if you want to have different widgets on different
   pages.
 * It really is easy to learn/ use and comes with sufficient doco to get you started.
   Essentially the plugin just adds a field to the bottom of a widget where you 
   can put in a conditional statement. This statement can be as simple as `is_home()`.
 * Happy to assist further if you decide to take it for a test run,
 * R
 *  Thread Starter [AlternativePhotography](https://wordpress.org/support/users/alternativephotography/)
 * (@alternativephotography)
 * [16 years, 4 months ago](https://wordpress.org/support/topic/widgets-on-different-pages/#post-1331713)
 * Ok, it’s installed. Really appreciate your offer of help… now here are the first
   dummy questions:
    To show the widget on two templates i write: is_page(‘suppliers’)&&
   is_page(‘classifieds’) But, something is wrong, since it does not show…?
 * To show something on all POSTS, but now on static PAGES… i tried this (and failed):
   
   is_global $post; Any ideas? 🙂
 *  Thread Starter [AlternativePhotography](https://wordpress.org/support/users/alternativephotography/)
 * (@alternativephotography)
 * [16 years, 4 months ago](https://wordpress.org/support/topic/widgets-on-different-pages/#post-1331804)
 * I solved this: To show something on all POSTS, but now on static PAGES… by writing:
   `
   is_single()`
 * But, I still can’t make the same widget show on 2 pages. Would anyone know what’s
   wrong with this code?
    `is_page('suppliers') && is_page('classifieds')`
 * I also have a more complicated question, which I wonder if it can be solved with
   Widget Logic? I would like to show articles in a similar category next to the
   post displayed and also when the archives in that category are shown.
    I.e. if
   the post is about Cameras, I would like to have a (text widget?) in the sidebar
   that says “Read more about Cameras” and then lists the posts in the same category.
   How could this be done?
 * Really appreciate any help!
 *  [Robert S](https://wordpress.org/support/users/rschilt/)
 * (@rschilt)
 * [16 years, 4 months ago](https://wordpress.org/support/topic/widgets-on-different-pages/#post-1331815)
 * [@alternativephotography](https://wordpress.org/support/users/alternativephotography/),
 * is_page(‘suppliers’) && is_page(‘classifieds’) probably needs to be: is_page(‘
   suppliers’) || is_page(‘classifieds’).
 * the first conditional is an “and” which will never return true and the 2nd statement
   is an “or” which I believe is what you are after.
 * Re your last question – can be done. You will have to introduce another plugin
   to perform a query_posts() within the widget (posts for a certain category).
 * Either one of these two plugins will assist:
 * 1) [PHP Exec](http://wordpress.org/extend/plugins/exec-php/) plugin: you will
   have to write the php code behind the query yourself.
    2) [Query Posts](http://wordpress.org/extend/plugins/query-posts/)
   plugin: will give you access to a series of tick boxes and simple fields to create
   the query.
 * I suggest you look at both of these options – perhaps “2” to begin with (simpler)
   alongside “Widget Logic” and try a few things out.
 * R
 * R
 *  Thread Starter [AlternativePhotography](https://wordpress.org/support/users/alternativephotography/)
 * (@alternativephotography)
 * [16 years, 4 months ago](https://wordpress.org/support/topic/widgets-on-different-pages/#post-1331825)
 * Thanks for your help! Now it works. (Where can i learn the basics of && and |
   | and that sort of stuff?)
    I installed Query Posts, and it shows up fine… but,
   can I somehow make it show the posts for the same category as the single post
   i am on, or do i have to create a Query Post widget with the is_category for 
   each category? I’m guessing there is an easy way to do this? 🙂
 *  [Robert S](https://wordpress.org/support/users/rschilt/)
 * (@rschilt)
 * [16 years, 4 months ago](https://wordpress.org/support/topic/widgets-on-different-pages/#post-1331834)
 * [@alternativephotography](https://wordpress.org/support/users/alternativephotography/),
 * Re 1st question – check out [Conditional Tags](http://codex.wordpress.org/Conditional_Tags)
   in the Codex.
 * Re getting posts displayed for the current category…
 * > make it show the posts for the same category as the single post i am on
 * you probably need to write a query for this and I don’t believe that the Query
   Posts plugin allows for variable parameters.
 * Here’s some code I use on one of my blogs which sits a “PHP Exec” Widget and 
   is also controlled by a “Widget Logic” conditional.
 *     ```
       <?php
       	$cat = get_the_category($post->ID);
       	// Show 5 posts and exclude uncategorised
       	query_posts('post_type=any&orderby=rand&showposts=5&cat=-459&cat='.$cat[0]->category_parent); }
       	echo '<ul>';
       	while (have_posts()) : the_post();
       		echo '<li class="nobullet">'; echo $cat_icon; echo '<strong><a href="'; the_permalink(); echo '" title="Click to read '; the_title(); echo '">'; the_title(); echo '</a></strong><br />'; ?>
       		<small>(<em><?php the_time('F j, Y'); ?></em> in "<em><?php echo $cat[0]->cat_name; ?></em>")</small></li>
       	<?php endwhile;
       	echo '</ul>';
       	wp_reset_query();
       ?>
       ```
   
 * You might need to play around with the formatting a little to suit yourself. 
   If you want to see my code in action go to this URL:
    [http://www.trupela.com/toktok/village-tales/](http://www.trupela.com/toktok/village-tales/).
   You will notice a widget at top of sidebar called: “Wankain Stori” – basically
   it’s a PHP Widget (with the above code) using a conditional from Widget Logic.
 * R
 *  Thread Starter [AlternativePhotography](https://wordpress.org/support/users/alternativephotography/)
 * (@alternativephotography)
 * [16 years, 4 months ago](https://wordpress.org/support/topic/widgets-on-different-pages/#post-1331863)
 * > check out Conditional Tags
 * Yes, that’s the page I was on, but it does not explain the &&… I will just have
   to do a basic php course. 🙂
 * > you probably need to write a query for this
 * Thanks for posting your code, but it’s just too complicated for me. I don’t know
   how to change it to fit.
 * What i need it something like:
    -Get the category/categories of the post -Display
   all posts of the same category/categories in a bullet list in the side widget.
 *     ```
       <?php
       	$cat = get_the_category($post->ID);
       	// Show all posts of the same category
       	query_posts('post_type=  SAMEASCATEGORY  &orderby=rand&showposts=  ALL POSTS  &cat=-459&cat='.$cat[0]->category_parent); }
       	echo '<ul>';
       	while (have_posts()) : the_post();
       		echo '<li>'; echo $cat_icon; echo '<strong><a href="'; the_permalink(); echo '" title="Click to read '; the_title(); echo '">'; the_title(); echo '</a></strong><br />'; ?>
       		<small>(<em><?php the_time('F j, Y'); ?></em> in "<em><?php echo $cat[0]->cat_name; ?></em>")</small></li>
       	<?php endwhile;
       	echo '</ul>';
       	wp_reset_query();
       ?>
       ```
   
 * I messed up your code now, but I think you’ll see what I’m after?
 * VERY nice website you have by the way! Well done.
 *  Thread Starter [AlternativePhotography](https://wordpress.org/support/users/alternativephotography/)
 * (@alternativephotography)
 * [16 years, 4 months ago](https://wordpress.org/support/topic/widgets-on-different-pages/#post-1331872)
 * [@rschilt](https://wordpress.org/support/users/rschilt/)
 * I found a script on another post, which i added to my sidebar:
 *     ```
       <?php
       if ( is_single() ) {
         $cats = wp_get_post_categories($post->ID);
           if ($cats) {
           $first_cat = $cats[0];
           $args=array(
             'cat' => $first_cat, //cat__not_in wouldn't work
             'post__not_in' => array($post->ID),
             'showposts'=>5,
             'caller_get_posts'=>1
           );
           $my_query = new WP_Query($args);
           if( $my_query->have_posts() ) {
             echo 'More on the same subject';
             while ($my_query->have_posts()) : $my_query->the_post(); ?>
               <p style="padding:0px 8px 0px 16px"><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></p>
              <?php
             endwhile;
           } //if ($my_query)
         } //if ($cats)
         wp_reset_query();  // Restore global post data stomped by the_post().
       } //if (is_single())
       ?>
       ```
   
 * It works really well, apart from when I try to style the “More on the same subject”.
   I try styling it with <h3 class=”widgettitle”>
 * I add it around this:
 *     ```
       <?php
       if ( is_single() ) {
         $cats = wp_get_post_categories($post->ID);
           if ($cats) {
           $first_cat = $cats[0];
           $args=array(
             'cat' => $first_cat, //cat__not_in wouldn't work
             'post__not_in' => array($post->ID),
             'showposts'=>5,
             'caller_get_posts'=>1
           );
           $my_query = new WP_Query($args);
           if( $my_query->have_posts() ) {
             echo 'More on the same subject';
             while ($my_query->have_posts()) : $my_query->the_post(); ?>
       ```
   
 * But, then I end up with two closing tags for </h3>, which messes up a few things…
   any idea how I should wrap the <h3>?
    Hope you have time to help me just once
   more! 🙂
 *  [Robert S](https://wordpress.org/support/users/rschilt/)
 * (@rschilt)
 * [16 years, 4 months ago](https://wordpress.org/support/topic/widgets-on-different-pages/#post-1331874)
 * [@happyrain](https://wordpress.org/support/users/happyrain/),
 * go make a nuisance of yourself elsewhere.
 * R
 *  [Robert S](https://wordpress.org/support/users/rschilt/)
 * (@rschilt)
 * [16 years, 4 months ago](https://wordpress.org/support/topic/widgets-on-different-pages/#post-1331875)
 * Sorry [@alternativephotography](https://wordpress.org/support/users/alternativephotography/)
   but I generally don’t get involved in debugging some elses code – besides its
   not my forte.
 * Having said that can I suggest:
 * 1) Try the code that I have posted which I am more than happy to help you with
   or…
 * 2) Approach the author of the code for assistance.
 * R
 *  Thread Starter [AlternativePhotography](https://wordpress.org/support/users/alternativephotography/)
 * (@alternativephotography)
 * [16 years, 4 months ago](https://wordpress.org/support/topic/widgets-on-different-pages/#post-1331896)
 * [@rschilt](https://wordpress.org/support/users/rschilt/)
    Completely understand!
   Thank you so much for your time. For anyone else reading, my conclusion is: Widget
   logic is good, and even php dummmies can do basic stuff! Topic resolved! 🙂
 *  Thread Starter [AlternativePhotography](https://wordpress.org/support/users/alternativephotography/)
 * (@alternativephotography)
 * [16 years, 4 months ago](https://wordpress.org/support/topic/widgets-on-different-pages/#post-1331958)
 * [@rschilt](https://wordpress.org/support/users/rschilt/) – Hope you are still
   reading, or anyone else with this knowledge!
 * Widget Logic is great, as you said, minor problem though:
    Would like to show
   a widget both on a page called events-listings and on posts appearing in category
   65, and 68-72. I tried this:
 * is_page(‘events-listings’) || in_category(65, 72, 71, 70, 69, 68)
    and this: 
   is_page(‘events-listings’) || in_category(65,72,71,70,69,68)
 * But none of it does the trick, it only shows on the events-listings page… should
   i use “if single in this catgory” somehow? Any hints would be greatly appreciated!
 *  [alanft](https://wordpress.org/support/users/alanft/)
 * (@alanft)
 * [16 years ago](https://wordpress.org/support/topic/widgets-on-different-pages/#post-1332027)
 * slightly late replying to AlternativePhotography, ahem.
 * Look at
    [http://codex.wordpress.org/Conditional_Tags#A_Category_Page](http://codex.wordpress.org/Conditional_Tags#A_Category_Page)
 * and you’ll see in_category() doesn’t take a list of numbers – BUT you can give
   it a list of numbers in an array like this
 * in_category( array( 1,2,3 ) )

Viewing 13 replies - 1 through 13 (of 13 total)

The topic ‘Widgets on different pages’ is closed to new replies.

## Tags

 * [widget](https://wordpress.org/support/topic-tag/widget/)

 * In: [Fixing WordPress](https://wordpress.org/support/forum/how-to-and-troubleshooting/)
 * 13 replies
 * 3 participants
 * Last reply from: [alanft](https://wordpress.org/support/users/alanft/)
 * Last activity: [16 years ago](https://wordpress.org/support/topic/widgets-on-different-pages/#post-1332027)
 * Status: resolved

## Topics

### Topics with no replies

### Non-support topics

### Resolved topics

### Unresolved topics

### All topics
