我是WordPress的新手。在我的主页上,我有一个导航栏,我只想向以用户身份登录的人显示。
在我的header.php
中,函数is_logged_in
似乎不起作用。
我想在我的header.php
文件中放置一个条件来检查用户是否已登录(然后显示导航)。
任何建议都会有所帮助。
答案 0 :(得分:41)
使用is_user_logged_in
功能:
if ( is_user_logged_in() ) {
// your code for logged in user
} else {
// your code for logged out user
}
答案 1 :(得分:3)
尝试以下适用于我的代码
global $current_user;
get_currentuserinfo();
然后,使用以下代码检查用户是否已登录。
if ($current_user->ID == '') {
//show nothing to user
}
else {
//write code to show menu here
}
答案 2 :(得分:1)
get_current_user_id()
将返回当前用户ID(整数),如果用户未登录,则将返回0。
if (get_current_user_id()) {
// display navbar here
}
更多详细信息,请点击get_current_user_id()。
答案 3 :(得分:0)
此问题来自Chrome的延迟更新数据请求。 第一次进入首页。 Chrome请求中包含空数据。然后,您进入登录页面并登录。当您返回首页时,Chrome懒于更新cookie数据请求,因为该域与您第一次访问时相同。 解决方案: 为首页网址添加参数。这可以帮助Chrome意识到该请求需要更新cookie才能调用服务器。
在仪表板页面添加
<?php
$track = '?track='.uniqid();
?>
<a href="<?= get_home_url(). $track ?>"> <img src="/img/logo.svg"></a>
答案 4 :(得分:0)
示例:根据用户是否登录显示不同的输出。
<?php
if ( is_user_logged_in() ) {
echo 'Welcome, registered user!';
} else {
echo 'Welcome, visitor!';
}
?>
答案 5 :(得分:-1)
我想是的。 当访客启动页面,但管理员未登录时,我们不会显示某些内容,例如聊天。
add_action('init', 'chat_status');
function chat_status(){
if( get_option('admin_logged') === 1) { echo "<style>.chat{display:block;}</style>";}
else { echo "<style>.chat{display:none;}</style>";}
}
add_action('wp_login', function(){
if( wp_get_current_user()->roles[0] == 'administrator' ) update_option('admin_logged', 1);
});
add_action('wp_logout', function(){
if( wp_get_current_user()->roles[0] == 'administrator' ) update_option('admin_logged', 0);
});