在登录/注销菜单中使用wp_nav_menu

时间:2017-01-13 16:52:47

标签: php wordpress menu

我已经在我的菜单中添加了一个登录/注销项目,并且我想将一个WordPress菜单作为子菜单添加到登录项目中,但是它没有按预期工作。

function add_log_in_out_links( $items, $args ) {
    if (is_user_logged_in() && $args->theme_location == 'secondary-menu') {
        $user = wp_get_current_user();
        $items .= '<li class=""><a href="#">' . $user->first_name . ' ' . $user->last_name . '</a>' . wp_nav_menu( array( 'theme_location' => 'logged-in-menu', 'container' => false, 'menu_class' => 'sub-menu' ) ) . '</li>';
    }

    elseif (!is_user_logged_in() && $args->theme_location == 'secondary-menu') {
        $items .= '<li class=""><a href="' . get_permalink( wc_get_page_id( 'myaccount' ) ) . '">Log In</a></li>';
    }

    return $items;
}

使用此代码,包含<ul>的wp_nav_menu()跳出父<li>之外。看图像 - WordPress menu oustide of <li> tag

1 个答案:

答案 0 :(得分:0)

wp_nav_menu()默认为echo。这是在返回我的$ items变量之前发生的,所以我将wp_nav_menu()转换为return而不是echo。

https://developer.wordpress.org/reference/functions/wp_nav_menu/