将登录/注销菜单项添加到主导航“我的帐户”子菜单[WooCommerce]

时间:2018-05-04 作者:Joseph Hart

我正在尝试根据用户角色添加有条件的登录/注销按钮。(如果用户是否登录)。我已经做到了这一点,但只有在以字符串而不是数组的形式访问菜单项时才可以。

我的代码:

    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;
    }
注销/登录选项当前位于菜单的末尾。我更希望它位于底部的“我的计划”下拉菜单中。

如何将此菜单项添加到“我的计划”的子菜单而不是主菜单?非常感谢您的帮助。

菜单和子菜单下拉列表的图像如下:

enter image description here

1 个回复
SO网友:Adriano G. V. Esposito

与..=您正在将HTML代码附加到字符串$items中包含的菜单的HTML代码,因此登录将显示在末尾。

相反,您希望在$items的HTML中插入链接,因此必须操作字符串。

例如,您可以使用str\\u replace()搜索链接的HMTL

我建议您使用var\\u dump$items并查看HTML,而不是使用str\\u replace()操作它

结束

相关推荐

将选项添加到“Menus”编辑器的“Screen Options”部分

我正在开发一个向WordPress菜单编辑器添加自定义选项的系统,我想将其与屏幕选项面板集成。在我的研究中,我找不到任何关于修改现有屏幕选项菜单的内容;这可能吗?请参见下面的屏幕截图,以更好地了解我要实现的目标。外观>菜单上的默认“屏幕选项”:外观>菜单上的目标“屏幕选项”: