wordpress - 在登录和注销菜单之间切换
问题描述
我在我的 Wordpress 站点中包含了一个用于登录和用户注册的菜单,该菜单出现在在 Wordpress 仪表板中选择它的标题中(外观> 菜单)。为此,我编写了下面的代码。
它将包含什么代码,以便在用户登录或注册时,注册菜单切换到允许关闭用户会话(注销页面)的链接,反之亦然?
function.php(子主题):
<?php
register_nav_menus( array(
'login' => esc_html__( 'Login', 'music' ),
) );
?>
header.php:
if ( has_nav_menu( 'login' ) ) {
echo '<div class="login-nav">';
$login_menu_args = array(
'theme_location' => 'login',
'container' => 'ul',
'menu_class' => 'nolmp',
'echo' => true,
'items_wrap' => '<ul id="%1$s" class="%2$s">%3$s</ul>',
);
wp_nav_menu( $login_menu_args );
echo '</div>';
}
谢谢
解决方案
如果当前用户已登录,函数is_user_logged_in()将返回 TRUE,否则返回 FALSE,这样可以直接进行检查。
最简单的解决方案是将链接显示代码包装在 IF/ELSE 语句中。类似于以下内容:
检查他们是否登录:
<?php if(is_user_logged_in()) {
// do the stuff to display "Log Out"
}
else {
// the user isn't logged in so display "Log In"
}
?>
注销功能在使用中如下所示:
<a href="<?php echo esc_url( wp_logout_url() ); ?>">Logout</a>
为了使事情更正确,请在您的functions.php中执行此逻辑,然后将您的标头代码替换为调用自定义函数的模板标记。但是,它可以在标题中处理这一切。
推荐阅读
- javascript - 在 Node.js 中使用装饰器
- java - 无法向可疑类型数组添加值
- c - 在 C 中 - 计数 1 的序列
- google-cloud-vision - 谷歌云视觉 api 返回带有 base 64 编码图像的空结果
- gradle - 在 nebula/gradle 中,如何将正在发布的版本注入正在发布的 jar 中?
- javascript - 将 null 或 falsy 值转换为未定义
- c++ - 如何初始化字节数组的映射?
- amazon-web-services - 无法再连接到 AWS EC2 免费套餐 Windows 0x204
- javascript - 在 react-native 中更改导航标题栏标题的字体
- javascript - 如何在散点图中使用 d3.drag 处理比例