我正在尝试根据用户角色添加有条件的登录/注销按钮。(如果用户是否登录)。我已经做到了这一点,但只有在以字符串而不是数组的形式访问菜单项时才可以。
我的代码:
add_filter( \'wp_nav_menu_items\', \'add_loginout_link\', 10, 2 );
function add_loginout_link( $items, $args ) {
if (is_user_logged_in() && $args->theme_location == \'primary\') {
$items .= \'<li><a href="\'. wp_logout_url( get_permalink( woocommerce_get_page_id( \'myaccount\' ) ) ) .\'">Log Out</a></li>\';
}
elseif (!is_user_logged_in() && $args->theme_location == \'primary\') {
$items .= \'<li><a href="\' . get_permalink( woocommerce_get_page_id( \'myaccount\' ) ) . \'">Log In</a></li>\';
}
return $items;
}
注销/登录选项当前位于菜单的末尾。我更希望它位于底部的“我的计划”下拉菜单中。
如何将此菜单项添加到“我的计划”的子菜单而不是主菜单?非常感谢您的帮助。
菜单和子菜单下拉列表的图像如下:

SO网友:Adriano G. V. Esposito
与..=您正在将HTML代码附加到字符串$items中包含的菜单的HTML代码,因此登录将显示在末尾。
相反,您希望在$items的HTML中插入链接,因此必须操作字符串。
例如,您可以使用str\\u replace()搜索链接的HMTL
我建议您使用var\\u dump$items并查看HTML,而不是使用str\\u replace()操作它