class="right"
属性的主导航菜单添加链接?我试图向
example.com/wp-logout.php?action=logout
添加静态链接,但这会导致注销确认页面。有什么方法可以使其成为注销链接?#1 楼
您可以使用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
链接。
我们已将当前查看页面的永久链接传递给了
登录URL,以便成功登录后用户将被重定向到当前页面。
我们已使用上述代码中的
class="right"
来满足您的要求。
您可以在此博客上找到详细的说明。
评论
@ timo-s在“二十十七岁(儿童)”主题中,这仅适用于顶部菜单位置:if($ args-> theme_location =='top')。
–马里(Iurie Malai)
17年9月2日在20:59
位置需要适合我的主要菜单
– Toskan
17年3月3日在4:08
#2 楼
尝试使用http://example.com/wp-login.php?action=logout添加自定义链接
对我有用!
评论
这向用户显示“您确定要注销吗?”提示,因为随机数丢失。
–random_user_name
17年7月10日在18:28
#3 楼
如果您灵活地添加插件来获得此功能,则可以使用:https://wordpress.org/plugins/login-logout-register-menu/它只是在菜单中添加了一个非常方便的部分建造者。您可以将其与另一个插件结合使用,以限制向登录用户显示哪些菜单项,向注销用户显示哪些菜单项以及向所有人显示哪些菜单项。
#4 楼
我的页脚菜单是一个小部件,因此我很难使用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_loginout()吗?
我已删除了接受的答案,因为该答案是在本网站上被without窃而未注明出处。
我最终使用了类似的东西。至少使用loginout()函数。我将发布下一次在电脑前的操作的确切信息。谢谢@toscho
您可以使用此免费插件wordpress.org/plugins/login-logout-register-menu轻松实现相同目的。