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

Posted

技术标签:

【中文标题】在菜单中使用 UserPro 登录和注销 WordPress【英文标题】:WordPress login & logout with UserPro in menu 【发布时间】:2015-08-03 12:43:40 【问题描述】:

我正在使用一个名为“UserPro”的插件。我还在菜单中使用了一个功能来显示“登录”或是否已登录“注销”。

function autov_add_loginout_navitem($items) 
    $login_item = '<li class="login">'.wp_loginout($_SERVER['REQUEST_URI'], false).'</li>';
    $items .= $login_item;
    return $items;

add_filter('wp_nav_menu_account_items', 'autov_add_loginout_navitem');

插件有一个短代码

<?php echo do_shortcode('[userpro template=login]'); ?>

如何在第一个代码中实现这一点?

(这是放在我的子主题的functions.php中)

【问题讨论】:

【参考方案1】:

该短代码需要在页面中。创建一个页面并添加简码。从那里您可以链接到登录页面。注销链接将保持不变。

function autov_add_loginout_navitem($items) 
    $format = '<a href="%s">%s</a>';
    $link = is_user_logged_in()
        ? sprintf($format, wp_logout_url(), 'Logout')
        : sprintf($format, home_url('login'), 'Login');
    $login_item = '<li class="login">'.$link.'</li>';
    $items .= $login_item;
    return $items;

add_filter('wp_nav_menu_account_items', 'autov_add_loginout_navitem');

上面的例子假设你已经创建了一个带有 slug login 的页面,并在那里添加了你的简码。请注意,wp_logout_url 函数可以将重定向链接作为参数,如果您想在注销后将用户发送到某个地方,则应指定该参数。

【讨论】:

【参考方案2】:

我为此寻找了很长时间的解决方案,但我无法让上面的代码为我工作,所以如果你无法获得代码,我会将我的解决方案分享给需要快速修复的任何人上班:

为“登录”和“注销”创建一个页面,并将短代码 [userpro template=login] 添加到两个页面。

安装 Wordpress 插件“nav menu roles”。激活后,转到外观 > 菜单。将“登录”和“注销”页面添加到菜单中。

在“登录”菜单项上,将“显示模式”设置为“已注销的用户”。 将“注销”菜单项“显示模式”设置为“登录用户”。

当您的访问者在导航中单击登录时,他们将被引导至输入用户名和密码的页面。当他们点击注销时,他们将自动注销并返回您的主页。

【讨论】:

以上是关于在菜单中使用 UserPro 登录和注销 WordPress的主要内容,如果未能解决你的问题,请参考以下文章

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

php WooCommerce:添加登录和注销链接到菜单

菜单栏中的登录/注销字段不合适且不起作用(Wordpress)

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

如何使用 djangocms 在每个页面中使用 django-userena 登录和注销表单?

菜单项可见性不会部分改变