将登录超链接添加到辅助导航菜单

时间:2014-03-07 作者:user1752759

在我的functions.php 文件:

#-----------------------------------------------------------------#
# Custom menu
#-----------------------------------------------------------------#
if ( function_exists( \'register_nav_menus\' ) ) {
    register_nav_menus(
        array(
          \'top_nav\' => \'Top Navigation Menu\',
          \'secondary_nav\' => \'Secondary Navigation Menu <br /> <small>Will only display if applicable header layout is selected <a href="\'. admin_url(\'?page=redux_options&tab=4\') .\'">here</a>.</small>\'
        )
    );
}   


//dropdown arrows
class Theme_Arrow_Walker_Nav_Menu extends Walker_Nav_Menu {
    function display_element($element, &$children_elements, $max_depth, $depth=0, $args, &$output) {
        $id_field = $this->db_fields[\'id\'];
        if (!empty($children_elements[$element->$id_field]) && $element->menu_item_parent == 0) { 
            $element->title =  $element->title . \'<span class="sf-sub-indicator"><i class="icon-angle-down"></i></span>\'; 
            $element->classes[] = \'sf-with-ul\';
        }

        if (!empty($children_elements[$element->$id_field]) && $element->menu_item_parent != 0) { 
            $element->title =  $element->title . \'<span class="sf-sub-indicator"><i class="icon-angle-right"></i></span>\'; 
        }

        Walker_Nav_Menu::display_element($element, $children_elements, $max_depth, $depth, $args, $output);
    }
}
以及我的header.php 文件:

<?php if(has_nav_menu(\'secondary_nav\')) { ?>
    <ul class="sf-menu">
        <?php wp_nav_menu( array(\'walker\' => new Theme_Arrow_Walker_Nav_Menu, \'theme_location\' => \'secondary_nav\', \'container\' => \'\', \'items_wrap\' => \'%3$s\' ) ); ?>
    </ul>
<?php } ?>
它显示一个主要的,更重要的是关于此问题的辅助导航菜单:

enter image description here

enter image description here

我想在“我的帐户”超链接下方添加登录导航超链接,如果用户已登录,则将其删除。

使用“管理”菜单和“设置”添加此项时。。。

enter image description here

即使用户已登录,它也会在此处留下登录导航超链接。

我如何才能将登录导航超链接添加到我的辅助导航菜单中,并在用户登录到网站后将其从列表中删除,如果可能的话,无需其他插件?

非常感谢。

1 个回复
最合适的回答,由SO网友:Milo 整理而成

您可以在打开过滤器的情况下执行此操作wp_get_nav_menu_items.

在本例中,我们首先检查是管理员屏幕还是用户未登录,如果是这样,就退出。

然后我们查看每个菜单项,找到一个Log In 作为菜单项标题,并将其取消设置。

function wpa_remove_menu_item( $items, $menu, $args ) {
    if( is_admin() || ! is_user_logged_in() ) return $items;

    foreach ( $items as $key => $item ) {
        if ( \'Log In\' == $item->title ) unset( $items[$key] );
    }
    return $items;
}
add_filter( \'wp_get_nav_menu_items\', \'wpa_remove_menu_item\', 10, 3 );

结束

相关推荐

针对在widgets.php页面上的WP指针可拖动的小工具的提示

我正在更新我编写的名为Feature Me的小部件插件,并为第一次安装插件的用户添加WordPress指针,以帮助他们在安装插件后找到小部件。然而,我遇到了一个问题。指针必须有一个目标,该目标是一个ID# 或者一个班级. (正常情况下可以)。但是在widget页面上,所有widget都以widget-[somenumber]. 如果我知道[某个数字]是什么,我可以毫无问题地瞄准它,但99%的时候,我不知道数字是什么,因为它实际上取决于插件的安装顺序。在其他网站上,这是小部件的ID:希望你能看到我的问题。在