WordPress将登录/注销添加到菜单编辑器

Posted

技术标签:

【中文标题】WordPress将登录/注销添加到菜单编辑器【英文标题】:WordPress add Login/Logout to menu editor 【发布时间】:2016-10-12 11:05:35 【问题描述】:

好的,所以我找到了这段代码,并对其进行了修改以满足我的需要。顺便说一句,我正在使用 WooCommerce,它解释了某些函数调用中的“wc”:

//Add login/logout link to primary menu
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="'. wc_get_endpoint_url( 'customer-logout', '', wc_get_page_permalink( 'myaccount' ) ) .'">Log Out</a></li>';
    
    elseif (!is_user_logged_in() && $args->theme_location == 'primary') 
        $items .= '<li><a href="'. wc_get_page_permalink( 'myaccount' ) .'">Log In</a></li>';
    
    return $items;

这会添加登录/注销菜单项,它们可以正常工作。但是,它们目前停留在菜单的末尾。我希望能够使用 wp-admin 中的编辑器来编辑职位。我想到的解决方案可能只是创建登录和注销页面,并使用标题位置重定向以及其中的这些代码行来获取正确的 URL,但我看到的问题是总会有一个登录项和注销,无论用户当前处于什么状态。是否有办法根据登录状态动态添加站点范围的 CSS 规则来隐藏相反的菜单项?

或者有没有更简单的方法?

【问题讨论】:

【参考方案1】:

不是最好的主意,但您可以尝试。 在 wp-admin 菜单部分创建新菜单项,如“自定义链接”

退出

http://www.example.com/account/customer-logout/

登录

http://www.example.com/account/

并向 WordPress 菜单项添加自定义类以管理可见性 例如,您将在页面正文中看到“登录”类,并隐藏“登录”链接或将其更改为具有相同链接的“帐户”。

【讨论】:

按类,我假设您的意思是 CSS 类?如何根据用户的登录状态动态修改 CSS? CSS 类。像这样添加类 link 并且您可以对 CSS 进行操作(隐藏 LogOut 或 LogIn) 例如:在 LogIn 项中添加类“user-guest”并在 CSS 中添加 .logged-in .user-guest display:none;所以登录的用户不会看到登录按钮 哇哦,我没有意识到当用户登录时,body 会自动添加一个 .logged-in 类。这太不可思议了。好的,这听起来绝对是最简单的方法。我也不确定这是否是最好的主意,但我认为它比我的标题重定向更好

以上是关于WordPress将登录/注销添加到菜单编辑器的主要内容,如果未能解决你的问题,请参考以下文章

在 WordPress 上登录/注销时隐藏/显示菜单

将登录/注销添加到主菜单

在菜单中使用 UserPro 登录和注销 WordPress

php 添加登录/注销到菜单

Wordpress-将HR按钮添加到Wordpress编辑器

在可视化编辑器 wordpress 中单击图像时添加自定义按钮