Support » Fixing WordPress » Code for calling Sidebars not working

  • Resolved magicalwonders

    (@magicalwonders)


    Hello folks,

    I’m trying to get my theme to display a different sidebar on one page, and have tried the following code:

    <?php if (is_page(36)) {include (’sidebar2.php’); }
    else {include (’sidebar1.php’); }
    ?>

    Although the code parses without any error, none of the two sidebars appears on the page. You can see the result at this url: http://really-valid-info.com/blog/

    Can anyone help and advise why this is not working, or suggest an alternative method?

    Many thanks,

    Myles

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

    (@stvwlf)

    include(TEMPLATEPATH . '/sidebar1.php');

    magicalwonders

    (@magicalwonders)

    Hi, thanks for the response.

    I’ve been playing around with this a bit and have modified my code.
    I now have two sidebars called sidebar.php and sidebar2.php

    Have tried the following code without success –

    <?php get_header(); ?>
    
    <?php 
    
    if  (is_page('36'))  { 
    
    include(TEMPLATEPATH . '/sidebar2.php'); 
    
    } else { 
    
    get_sidebar();
    
    }	
    
    ?>

    My code for sidebar2 is as follows

    <div id="sidebar1" class="column">
    
    	<ul id="navlist" class="backgroundbullet">
    
    	<?php wp_list_pages('sort_column=menu_order&title_li='); ?>
    
    	</ul>
    	</div>
    
    	<div>
    
    	<h2>Archives</h2>
    
    				<?php wp_get_archives('type=monthly'); ?>
    
      <!-- end #sidebar2 --></div>

    I don’t seem to be able to get sidebar2 which shows the archive to display. I’ve tried (is_page(’36’) without the quotes around the number, but that doesn’t seem to work either!

    Not sure where I’m going wrong?

    Would be grateful for any advice.

    Myles

    magicalwonders

    (@magicalwonders)

    I’ve also tried using a conditional statement just in the one sidebar as follows:

    <?php
    if (is_page ('News')) { ;?>
    
    <div id="sidebar1" class="column">
    <ul id="navlist" class="backgroundbullet">
    
    	<?php wp_list_pages('sort_column=menu_order&title_li='); ?>
    
    	</ul>
    	</div>
    
    	<div>
    
    	<h2>Archives</h2>
    
    				<?php wp_get_archives('type=monthly'); ?></div>
    
    <?php } else { ?>
    <div id="sidebar1" class="column">
    <ul id="navlist" class="backgroundbullet">
    
    	<?php wp_list_pages('sort_column=menu_order&title_li='); ?>
    
    	</ul>
    
    <?php } ?>
    
      <!-- end #sidebar --></div>

    That doesn’t seem to have any affect either!

    Anyone got any ideas on why my code isn’t working?

    buddha trance

    (@buddha-trance)

    I just tested this, and it worked:

    <?php if ( is_page('36') ) { ?>
    <?php include(TEMPLATEPATH.'/sidebar2.php');?>
    <?php } else { ?>
    <?php include(TEMPLATEPATH.'/sidebar.php');?>
    <?php } ?>

    Hope it helps!

    magicalwonders

    (@magicalwonders)

    Hi buddha trance,

    Thanks for the help. I’ve tried that code, but it still doesn’t seem to display sidebar2.php for some reason. I can’t see where I’m going wrong.

    My index.php is as follows:

    <?php get_header(); ?>
    
    <?php if ( is_page('36') ) { ?>
    <?php include(TEMPLATEPATH.'/sidebar2.php');?>
    <?php } else { ?>
    <?php include(TEMPLATEPATH.'/sidebar.php');?>
    <?php } ?>
    
    <div id="mainContent" class="column">
        <?php if (have_posts()): ?><?php while(have_posts()):the_post(); ?>
    
    <div class="post" id="post-<?php the_id(); ?>">
    
    		<h2><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></h2>
    
    	<div class="entry">
    
    		<?php the_content(); ?>
    
    		<p class="postmetadata">
    <?php _e('Filed under:'); ?> <?php the_category(', ') ?> <?php _e('by'); ?> <?php  the_author(); ?><br />
    <?php comments_popup_link('No Comments »', '1 Comment »', '% Comments »'); ?> <?php edit_post_link('Edit', ' | ', ''); ?>
    				</p>
    
    	</div>
    
    </div>
    
    	<?php endwhile; ?>
    
    		<div class="navigation">
    		<?php posts_nav_link('','Previous page','Next page'); ?>
    		</div>
    
    	<?php else: ?>
    
    		<div class="post">
    			<h2><?php_e('not_found'); ?></h2>
    		</div>
                  <?php endif; ?>
    
    <!-- end #mainContent --></div>
    <!-- This clearing element should immediately follow the #mainContent div in order to force the #container div to contain all child floats --><br class="clearfloat" />
    
    <?php get_footer(); ?>

    Code for sidebar.php is –

    <div id="sidebar1" class="column">
    <ul id="navlist" class="backgroundbullet">
    
    	<?php wp_list_pages('sort_column=menu_order&title_li='); ?>
    
    	</ul>
    
    <!-- end #sidebar --></div>

    And sidebar2.php is as follows –

    <div id="sidebar1" class="column">
    
    	<ul id="navlist" class="backgroundbullet">
    
    	<?php wp_list_pages('sort_column=menu_order&title_li='); ?>
    
    	</ul>
    	</div>
    
    	<div>
    
    	<h2>Archives</h2>
    
    			<?php wp_get_archives('type=monthly'); ?>
    
    <!-- end #sidebar2 --></div>

    When uploaded, only sidebar appears to be showing on the News page –
    http://really-valid-info.com/blog/?page_id=36

    I can’t see why this is not working?

    buddha trance

    (@buddha-trance)

    I am not sure if this makes a difference, but the way I tested it, was by editing sidebar.php, and not index.php

    Try this way:
    Keep index.php as it was originally, it will call for the sidebar the usual way <?php get_sidebar(); ?>

    Make a copy of sidebar.php, and rename it sidebar1.php

    Edit sidebar.php and just use that code, except that now you want to call sidebar1.php (instead of sidebar.php) and sidebar2.php

    <?php if ( is_page('36') ) { ?>
    <?php include(TEMPLATEPATH.'/sidebar2.php');?>
    <?php } else { ?>
    <?php include(TEMPLATEPATH.'/sidebar1.php');?>
    <?php } ?>

    The content of your sidebars is in sidebar1 and sidebar2, while sidebar.php has the conditional code (which I tested to work). See if it works that way.

    magicalwonders

    (@magicalwonders)

    This isn’t working for me for some reason.

    I’ve only got six templates currently in the theme. Index.php footer.php header.php sidebar.php sidebar1.php and sidebar2.php

    The index now shows <?php get_sidebar(); ?>
    sidebar.php code is –

    <?php if ( is_page('36') ) { ?>
    <?php include(TEMPLATEPATH.'/sidebar2.php');?>
    <?php } else { ?>
    <?php include(TEMPLATEPATH.'/sidebar1.php');?>
    <?php } ?>

    sidebar1.php code is –

    <div id="sidebar1" class="column">
    <ul id="navlist" class="backgroundbullet">
    
    	<?php wp_list_pages('sort_column=menu_order&title_li='); ?>
    
    	</ul>
    <!-- end #sidebar --></div>

    and sidebar2.php code is –

    <div id="sidebar1" class="column">
       <ul id="navlist" class="backgroundbullet">
        <?php wp_list_pages('sort_column=menu_order&title_li='); ?>
           </ul>
    	</div>
    
    	<div>
    <h2>Archives</h2>
    <?php wp_get_archives('type=monthly'); ?>
    <!-- end #sidebar2 --></div>

    Have no idea why this is not working for me.

    magicalwonders

    (@magicalwonders)

    O.K. I’ve played around with this and discovered that I can get the sidebar2.php showing on any page except the “News” page.

    In my Admin settings I have the static page set as – Front page: Home and Posts page: News

    So I suppose this is what is causing the problem. However, I need the archive to show on the “News” page, so not sure how to get around this problem.

    Any advice would be appreciated.

    Many thanks,

    Myles

    buddha trance

    (@buddha-trance)

    All right, that was important info.

    Since the News page is where your main loop is, then you have to use is_home, instead of is_page. That should make it work

    <?php if ( is_home() ) { ?>
    <?php include(TEMPLATEPATH.'/sidebar2.php');?>
    <?php } else { ?>
    <?php include(TEMPLATEPATH.'/sidebar1.php');?>
    <?php } ?>

    Let us know!

    magicalwonders

    (@magicalwonders)

    Hooray, it works! Thanks for the help, I really appreciate it.

    It’s a bit confusing though, setting it to “is_home” as it doesn’t actually go to the home page. Is that because the “Home page” has been set as static and therefore doesn’t contain a loop?

    buddha trance

    (@buddha-trance)

    Right. The static “Home page” is actually your “Front page” [is_front_page()], and ‘home’ is where the loop is, that is, your ‘News’ page [is_home()]. Let’s say it has been promoted from just a regular page, to the main page.

    magicalwonders

    (@magicalwonders)

    Hi buddha trance,

    Thanks for the explanation. Much appreciated.

    I’ve had a play around with the code and the following also works on the index page.

    <?php if ( is_home() ) { ?>
    <?php include(TEMPLATEPATH.'/sidebar2.php');?>
    <?php } else { ?>
    <?php get_sidebar(); ?>
    <?php } ?>

    I think I’m starting to get the hang of this php with WordPress stuff! lol.

    Hello, I’m pretty new to WordPress and I’m having some issues displaying 2 sidebars as well, I think my main problem is that I’m not sure where to set which page is the home page, My homepage right now will be the index but i wanted to see If someone would check out my code and point me in the right direction, so far I think I did the same as MagicalWonders and Buddha Trance but not quite sure where I’m going Wrong. Cheers and Many Thanks, here is my code.

    index.php

    <?php get_header(); ?>
        <div id="sub_container">
                <?php get_sidebar(); ?>
        	<div id="sub_main">
                <div id="sub_main_pic_top"></div>
            	<div id="sub_main_pic">
                	<img src="wp-content/themes/whiteboard/images/xsub_main_01.jpg" alt="Main Chapter Image" />
                </div>
                <div id="sub_main_pic_bott"></div>
            	<h3 id="titl_seven">Seven Extraordinary Things</h3>
                <div id="sub_main_curv_top"></div>
                <div id="sub_main_mid">
                	<h3>Welcome</h3>
                    <p>Seven Extraordinary Things is free online graphic novel written and illustrated by <a href="#">Doug Lefler</a>. New panels are added daily. If you miss any, go to <a href="#">Chapters</a>. If you want to get an idea where the story is headed, who is in it, or where it all takes place, check out <a href="#">Gallery</a>, <a href="#">Characters</a> and <a href="#">Locations</a>. If you’re curious what the Seven Extraordinary Things are, they can be found on <a href="#">The List</a>.</p>
              </div>
                <div id="sub_main_curv_bott"></div>
                <div id="sub_main_curv_top_out"></div>
                <div id="sub_main_mid_bg">
    <!-- POST INFORMATION -->
    <div class="post">
     <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
     <h2><a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a></h2>
     <p>Written on <?php the_time('F j, Y'); ?> at <?php the_time() ?>, by <?php the_author() ?></p>
    
     <?php the_content(__('Read more'));?>
    
     <div class="postmeta">
      <p><?php comments_popup_link('No Comments', '1 Comment', '% Comments'); ?></p>
      <p>Category <?php the_category(', ') ?> | Tags: <?php the_tags(' ', ',', ' '); ?></p>
     </div><!-- end .postmeta -->
    
     <?php endwhile; else: ?>
      <p><strong>There has been a glitch in the Matrix.</strong><br />
      There is nothing to see here.</p>
      <p>Please try somewhere else.</p>
     <?php endif; ?>
    
     <div class="postnavigation">
      <p><?php next_posts_link('&laquo; Older Entries') ?><?php previous_posts_link(' | Newer Entries &raquo;') ?></p>
     </div> <!-- end .postnavigation -->
    
    </div> <!-- end .post -->
                </div>
                <div id="sub_main_curv_bott_out"></div>
            </div>
                <?php get_sidebar(); ?>
        </div>
    <?php get_footer(); ?>

    sidebar.php

    <?php if ( is_home() ) { ?>
    <?php include(TEMPLATEPATH.'/sidebar_left.php');?>
    <?php } else { ?>
    <?php get_sidebar(); ?>
    <?php } ?>

    sidebar_left.php

    <div id="sub_sidebar_left">
            	<h3 id="titl_chapters">Chapters</h3>
            		<ul>
                		<li><a id="chapter_01" title="Chapter 01" href="http://www.sevenextraordinarythings.com/">Chapter 01</a></li>
                		<li><a id="chapter_02" title="Chapter 02" href="http://www.sevenextraordinarythings.com/">Chapter 02</a></li>
                		<li><a id="chapter_03" title="Chapter 03" href="http://www.sevenextraordinarythings.com/">Chapter 03</a></li>
                		<li><a id="chapter_04" title="Chapter 04" href="http://www.sevenextraordinarythings.com/">Chapter 04</a></li>
                	</ul>
            	<div id="sub_sidebar_bott"></div>
            </div>

    sidebar_right.php

    <div id="sub_sidebar_right">
            	<h3 id="titl_characters">Characters</h3>
    		<ul>
                		<li><a id="character_01" title="Greg" href="http://www.sevenextraordinarythings.com/">Greg</a></li>
                		<li><a id="character_02" title="Claire" href="http://www.sevenextraordinarythings.com/">Claire</a></li>
                		<li><a id="character_03" title="Nina" href="http://www.sevenextraordinarythings.com/">Nina</a></li>
                		<li><a id="character_04" title="Harlan" href="http://www.sevenextraordinarythings.com/">Harlan</a></li>
                		<li><a id="character_05" title="Janis" href="http://www.sevenextraordinarythings.com/">Janis</a></li>
                		<li><a id="character_06" title="Minor" href="http://www.sevenextraordinarythings.com/">Minor</a></li>
                		<li><a id="character_07" title="Sheppard" href="http://www.sevenextraordinarythings.com/">Sheppard</a></li>
                		<li><a id="character_08" title="Ken" href="http://www.sevenextraordinarythings.com/">Ken</a></li>
                    </ul>
            	<div id="sub_sidebar_bott"></div>
            </div>

    Any help is greatly appreciated

Viewing 13 replies - 1 through 13 (of 13 total)
  • The topic ‘Code for calling Sidebars not working’ is closed to new replies.