将“注销”链接添加到导航菜单

时间:2014-07-29 作者:Zach Russell

如何使用添加到主导航菜单的链接class="right" 属性

我试图将静态链接添加到example.com/wp-logout.php?action=logout 但这会导致一个注销确认页面。有没有办法让它成为一个注销链接?

4 个回复
最合适的回答,由SO网友:Chittaranjan 整理而成

您可以使用wp_nav_menu_items 钩下面的代码显示了primary 菜单位置。

add_filter( \'wp_nav_menu_items\', \'wti_loginout_menu_link\', 10, 2 );

function wti_loginout_menu_link( $items, $args ) {
   if ($args->theme_location == \'primary\') {
      if (is_user_logged_in()) {
         $items .= \'<li class="right"><a href="\'. wp_logout_url() .\'">\'. __("Log Out") .\'</a></li>\';
      } else {
         $items .= \'<li class="right"><a href="\'. wp_login_url(get_permalink()) .\'">\'. __("Log In") .\'</a></li>\';
      }
   }
   return $items;
}
这就是我们在上面的示例中实现的。

首先为添加了筛选器wp_nav_menu_items 挂钩并将其连接到功能上primary 主题位置,我们已检查用户是否登录Log Out 否则链接Log In链接class="right" 以满足您的要求您可以找到关于此的详细说明blog.

SO网友:Marcelo Oliveira

尝试使用添加自定义链接http://example.com/wp-login.php?action=logout这对我有用!

SO网友:JesusIniesta

如果您可以灵活地添加插件以获得此功能,您可以使用:https://wordpress.org/plugins/login-logout-register-menu/

它只是在菜单生成器中添加了一个非常方便的部分。您可以将其与另一个插件结合使用,以限制哪些菜单项显示给登录用户,哪些菜单项显示给注销用户,哪些菜单项显示给所有人。

enter image description here

SO网友:Ralf

我的页脚菜单是widget, 因此,我很难使用Chittaranjan的代码。以下编辑版本对我适用。我还更改了链接并将其设置为“动态”:登录将指向您选择的页面,注销将保留在当前页面上,如果当前页面是您的(私人)登录页面,则将其发送到主页。理想情况下,它会检查你的登录页面是否真的是私有的,但我不知道怎么做,抱歉。

add_filter( \'wp_nav_menu_items\', \'wti_loginout_menu_link\', 10, 2 );

function wti_loginout_menu_link( $items, $args ) {
    //var_dump($args);
    if (($args->menu->slug == \'footer\')) {
        if (is_user_logged_in()) {
            $loginlink = \'/your-private-page\';
            $logoutlink = get_permalink();
            if (strpos($logoutlink, $loginlink) !== false) {
                $logoutlink = \'/\';
            }
            $items .= \'<li class="right"><a href="\'. wp_logout_url($logoutlink) .\'">\'. __("Log Out") .\'</a></li>\';
        } else {
            $items .= \'<li class="right"><a href="\'. wp_login_url($loginlink) .\'">\'. __("Log In") .\'</a></li>\';
        }
    }
    return $items;
}

结束

相关推荐

无法登录并且wp-login.php重定向到wp-admin%2F&reauth=1?

我在登录WordPress网站时遇到了一些困难。当我尝试访问示例时。com/wp管理员,我看到一个空白页面,url栏变为:http://example.com/wp-login.php?redirect_to=http%3A%2F%2Fmysite.com%2Fwp-admin%2F&reauth=1如果我访问示例。com/wp登录。php,我只看到一个空白的白色页面,没有对URL进行任何更改。我已经确认这不是本地机器上的任何问题,因为这种行为在多个浏览器和设备上持续存在。我在论坛上找到了许多关于