Wordpress Themes - WP Forum at BFA
There will be no more development for Atahualpa (or any other theme), and no support. Also no new registrations. I turned off the donation system. I may turn the forum to read only if it gets abused for spam. Unfortunately I have no time for the forum or the themes. Thanks a lot to the people who helped in all these years, especially Larry and of course: Paul. Take care and stay healthy -- Flynn, Atahualpa developer, Sep 2021

Wordpress Themes - WP Forum at BFA » WordPress Themes » Atahualpa 3 Wordpress theme »

[SOLVED] Tiered menus first level duplicated at 'Not found' page


  #1  
Old Nov 15, 2012, 09:49 AM
Sprutt
 
12 posts · Feb 2010
Hello,

After some extensive Googling I've managed to put together a multi-tiered menu using the wp_list_pages function. It works great everywhere except on the "Not found" page. On that page the code somehow gets it wrong and outputs the first level elements as a subnav/second row, which results in a duplication of the main menu. See code below.

Does anyone have a clue to why this is? And how do I resolve it?

I thought that maybe a custom 404 template would fix it, but when I put a 404.php in my Atahualpa folder it doesn't get used as I read somewhere it would...

The code that goes in header.php looks like this:

PHP Code:
<ul id="nav">  
    <?php 
        $exclude_pages 
= array('nyheter');
        
$excl_str = array();
        foreach( 
$exclude_pages as $title ) {
        
$page get_page_by_title$title );
        
$excl_str[] = $page->ID; }
        
$excl implode(','$excl_str);
        
        
wp_list_pages('title_li=&depth=1&exclude='.$excl.''); 
    
?>  
</ul>  

<?php 
    $parent_id 
$post->post_parent;
    
$parent get_post($parent_id);
    
    if(
$post->post_parent){
        if(
$parent->post_parent){
            
$child wp_list_pages("depth=1&title_li&child_of=".$parent->post_parent."&echo=0&exclude=".$excl."");
            
$child2 wp_list_pages("depth=1&title_li&child_of=".$parent->ID."&echo=0&exclude=".$excl."");
        } else {
            
$child wp_list_pages("depth=1&title_li&child_of=".$parent_id."&echo=0&exclude=".$excl."");
            
$child2 wp_list_pages("depth=1&title_li&child_of=".$post->ID."&echo=0&exclude=".$excl."");
        }
    } else {
        
$child wp_list_pages("depth=1&title_li&child_of=".$post->ID."&echo=0&exclude=".$excl."");
    }
    
    if(
$child){
        echo 
'<ul id="subnav-level-1" class="subnav">'."".$child."".'</ul>';
    }
    if(
$child2){
        echo 
'<ul id="subnav-level-2" class="subnav">'."".$child2."".'</ul>';
    }
?>
Thanks in advance for any help!

Last edited by Sprutt; Nov 15, 2012 at 10:04 AM.
  #2  
Old Nov 15, 2012, 11:13 AM
juggledad's Avatar
juggledad
 
23,765 posts · Mar 2009
OSX 10.11.5 WP 4.x Atahualpa(all) Safari, Firefox, Chrome
I would have to see the site to understand what you are doing.
Also it would be helpful to know what version you are running....
__________________
"Tell me and I forget, teach me and I may remember, involve me and I learn." - Benjamin Franklin
Juggledad | Forum Moderator/Support
  #3  
Old Nov 16, 2012, 10:19 AM
Sprutt
 
12 posts · Feb 2010
Hey Juggledad! Thanks for helping out.

Unfortunately I can't show you the actual site since it is not live yet, but in the image below you can see what I'm doing. Does that clarify my problem?

  #4  
Old Nov 16, 2012, 02:53 PM
juggledad's Avatar
juggledad
 
23,765 posts · Mar 2009
OSX 10.11.5 WP 4.x Atahualpa(all) Safari, Firefox, Chrome
I would add some 'echo' statements in your code so ou can see what is executing, something like
HTML Code:
ehco 'I am in the first if<br>';
etc, the you might see what is going on.
__________________
"Tell me and I forget, teach me and I may remember, involve me and I learn." - Benjamin Franklin
Juggledad | Forum Moderator/Support
  #5  
Old Nov 19, 2012, 07:51 AM
Sprutt
 
12 posts · Feb 2010
Thanks for your help Juggledad!

I did some echoing and found out that all the variables for post id and post parent id were not set when you were at the 'Not found' page. So I just made my else into an else if with an isset check in, like below if anyone is interested.

PHP Code:
else if(isset($parent_id)) 

Bookmarks



Similar Threads
Thread Thread Starter Forum Replies Last Post
Child sub menus overlap parent menus on H-Page menu bar cainj99 Page & Category Menu Bars 0 Jan 6, 2012 02:12 PM
"Don't link first level parent items in Page Menu Bar" with WP menus? lehacarpenter Page & Category Menu Bars 11 Nov 19, 2011 09:16 AM
Two level menus - Page Dependent jaxon Page & Category Menu Bars 3 Apr 27, 2011 02:11 PM
Menu 1 Settings not Displaying on Top Level Menu Item using WP3 Menus fantasychess Page & Category Menu Bars 2 Jan 7, 2011 03:25 PM
Duplicated meta fields when using static page as homepage - v. 3.4.2 pgc Atahualpa 3 Wordpress theme 0 Aug 7, 2009 09:22 AM


All times are GMT -6. The time now is 11:51 AM.


Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.