使用wp_NAV_MENU_ITEMS时出现辅助导航菜单

时间:2017-07-10 作者:Alex Walter

在我使用add\\u filter(“wp\\u nav\\u Menu\\u items”)将登录/注销按钮添加到主菜单之前,我的辅助导航菜单工作正常。这是我的代码:

add_filter( \'wp_nav_menu_items\', \'add_loginout_link\', 10, 2 );
 function add_loginout_link( $items, $args ) {
//Add item to primary menu
if ($args->theme_location == \'primary\') {

    //checks if user is logged in
   if (is_user_logged_in()) {
       //builds menu item and sub items
    $items .= \'<li id="menu-item-portal" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children">\'.
   // $submenus .
    //Sub Items
    \'<ul class="sub-menu">\' .
    //FAQ
        \'<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-232">\'.
            \'<a href="\' . get_site_url() . \'/portal/Faq">\'.
                \'<span>FAQ</span>\' .
            \'</a>\'.
        \'</li>\'.
        // Contacts
        \'<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-232">\'.
            \'<a href="\' . get_site_url() . \'/portal/Contacts">\'.
                \'<span>TeAHN Contacts</span>\' .
            \'</a>\'.
        \'</li>\'.
        //Bulletin
         \'<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-232">\'.
            \'<a href="\'. get_site_url() . \'/portal/Bulletin">\'.
                \'<span>Bulletin</span>\' .
            \'</a>\'.
        \'</li>\'.
        // Documents
          \'<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-232">\'.
            \'<a href="\'. get_site_url() . \'/portal/Documents">\'.
                \'<span>Documents</span>\' .
            \'</a>\'.
        \'</li>\'.
        //Logout
        \'<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-232">\'.
            \'<a href="\'. wp_logout_url() .\'">\'.
                \'<span>Log Out</span>\' .
            \'</a>\'.
        \'</li>\'.

    \'</ul>\'.



    \'<a href="\'.  get_site_url() . \'/portal">Portal</a></li>\';
}
elseif (!is_user_logged_in()) {
    $items .= \'<li id="menu-item-login"><a href="\'. site_url(\'wp-login.php\') .\'">Log In</a></li>\';
}
return $items;
}


}

1 个回复
SO网友:Milo

你需要搬家return $items;if 检查当前,仅当主题位置为primary, 如果不返回任何内容,则所有其他菜单都将没有菜单项。

结束

相关推荐

添加到数组并通过do_action/Apply_Filters传递它

作为练习,我正在使用PHPclass to add meta boxes 我在GitHub上找到了。我只是复制了代码,现在我正在玩它来理解它。其工作原理如下:包含该类的文件包含在init中。在该文件内部,但在类外部,有一个空数组$meta_boxes 已初始化之后,使用apply_filters. 我猜是apply_filters 使用而不是do_action 因为后者不返回任何内容——$meta_boxes = apply_filters( \'cmb_meta_boxes\', $meta_boxes