WordPress.org

Ready to get started?Download WordPress

Forums

Excluding current page from sidebar and including page of different template (5 posts)

  1. thebowerygroup
    Member
    Posted 1 year ago #

    Hi,

    I've been trying to do this for hours and have read many forum posts with no success.

    I've created a sidebar on a page. It displays a link to the current page that the user is on, along with a link to a child page.

    The structure is as follows:

    Parent page
    > Child page 1
    > Child page 2
    > Child page 3

    Questions:

    1. How do I exclude the current page from the sidebar?
    2. How do I include child page 3 in the sidebar, if it uses a different template.php to Child pages 1 and 2?

    Current code for the custom sidebar widget is:

    // Display widget
    
    	function widget( $args, $instance ) {
    
    		extract( $args );
    
    		global $post;
    
    		if ( $post->post_parent != 0 ) {
    
    			echo $before_widget;
    
    			echo $before_title . get_the_title( $post->post_parent ) . $after_title;
    
    			echo '<nav>';
    
    				echo '<ul>';
    
    					wp_list_pages( array(
    
    						'post_type'   => 'page',
    						'child_of'    => '37',
    						'sort_column' => 'post_title',
    						'title_li'    => ''
    
    					) );
    
    				echo '</ul>';
    
    			echo '<nav>';
    
    			echo $after_widget;
    
    		}

    Any help would be much appreciated.

    Many thanks

  2. tomontoast
    Member
    Posted 1 year ago #

    I'm not sure I follow you're question but I'll try to give you an answer:
    1. You can use the exclude parameter in wp_list_pages to remove the current page

    2.How do different template.php files affect this??

  3. thebowerygroup
    Member
    Posted 1 year ago #

    Hi Tom,

    I've tried using exclude in the list pages array but I wasn't sure how to exclude the current page. I tried excluding by ID but obviously that doesn't work as the current page will change.

    I'm using a different template file for one of the sub pages, as follows:

    Parent page (template-about-landing-page.php)
    > Child page 1 (template-about-sub-page.php)
    > Child page 2 (template-about-sub-page.php)
    > Child page 3 (template-directors.php)

    Currently, the sidebar is pulling in Child pages 1 and 2 but it isn't pulling through Child page 3. I just assumed that the cause of this is something to do with the fact that Child page 3 uses a different template.

    Thanks.

  4. tomontoast
    Member
    Posted 1 year ago #

    You can get the current page id, see http://codex.wordpress.org/Function_Reference/get_the_ID

    Currently, the sidebar is pulling in Child pages 1 and 2 but it isn't pulling through Child page 3. I just assumed that the cause of this is something to do with the fact that Child page 3 uses a different template.

    I doubt that is the case, wordpress doesn't filter pages by template.

  5. thebowerygroup
    Member
    Posted 1 year ago #

    Thanks Tom. I will have a look at get_the_ID.

Topic Closed

This topic has been closed to new replies.

About this Topic