• I have made ad custom menu called Hovedmenu. It has top menu-item and submenues. Works perfect :-). I would like to add a new menu-item on the top level. That would by easy, if i just wanted a “normal” menu-item, but i would like the last top menu-item to have the same function as the <?php wp_register();??> command. With other words the menu-item would show log in or log out depending on if the user if logged in or out.

    If logged in, the submenu-items of the menu-item (Log in/Out) would up.

    I hope there is someone out there, WHO is able to help me out here.

Viewing 3 replies - 1 through 3 (of 3 total)
  • I haven’t try this, but maybe someone from your part can try this.

    Use regular menu item (custom menu item), then use the_title filter, to change the text. In the the_filter filter function, you can check whether someone is logged in or not. If logged in, you can alter the title of the menu to Logout, otherwise set it to Login.

    Hope this works.

    Thread Starter moondreamer

    (@moondreamer)

    Hi, sounds like a solution, but how?

    Thread Starter moondreamer

    (@moondreamer)

    Hi, sounds like a solution – but how-do-i-do-that? I am not the greatest coder out there, so perhaps you could give me an exampel?

    I am calling my custom menu, with these options:

    <?php
    			wp_nav_menu( array( 'menu' => 'Main',
    								'container' =>false,
    								'menu_class' => 'nav',
    								'echo' => true,
    								'fallback_cb' => 'kriesi_fallback_menu',
    								'before' => '',
    								'after' => '',
    								'link_before' => '',
    								'link_after' => '',
    								'depth' => 0,
    								'context' => 'frontend',
    								'walker' => new kclass_description_walker())
    						);
    			?>

    Here is my “walker” code, perhaps the filter should go here?

    <?php
    
    class kclass_description_walker extends Walker_Nav_Menu
    {
    	 function start_el(&$output, $item, $depth, $args)
    	 {
    	     global $wp_query;
    	     $indent = ( $depth ) ? str_repeat( "\t", $depth ) : '';
    
    	     $class_names = $value = '';
    
    	     $classes = empty( $item->classes ) ? array() : (array) $item->classes;
    
    	     $class_names = join( ' ', apply_filters( 'nav_menu_css_class', array_filter( $classes ), $item ) );
    	     $class_names = ' class="' . esc_attr( $class_names ) . '"';
    
    	     $output .= $indent . '<li id="menu-item-'. $item->ID . '"' . $value . $class_names .'>';
    
    	     $attributes  = ! empty( $item->attr_title ) ? ' title="'  . esc_attr( $item->attr_title ) .'"' : '';
    	     $attributes .= ! empty( $item->target )     ? ' target="' . esc_attr( $item->target     ) .'"' : '';
    	     $attributes .= ! empty( $item->xfn )        ? ' rel="'    . esc_attr( $item->xfn        ) .'"' : '';
    	     $attributes .= ! empty( $item->url )        ? ' href="'   . esc_attr( $item->url        ) .'"' : '';
    
    	     $prepend = '<strong>';
    	     $append = '</strong>';
    	     $description  = ! empty( $item->description ) ? '<span>'.esc_attr( $item->description ).'</span>' : '';
    
    	     if($depth != 0)
    	     {
    	     	$description = $append = $prepend = "";
    	     }
    
    	     $item_output = $args->before;
    	     $item_output .= '<a'. $attributes .'>';
    	     $item_output .= $args->link_before .$prepend.apply_filters( 'the_title', $item->title, $item->ID ).$append;
    	     $item_output .= $description.$args->link_after;
    	     $item_output .= '</a>';
    	     $item_output .= $args->after;
    
    	     $output .= apply_filters( 'walker_nav_menu_start_el', $item_output, $item, $depth, $args );
    	}
    }
Viewing 3 replies - 1 through 3 (of 3 total)
  • The topic ‘Add menu-item with functions to my custom menu’ is closed to new replies.