我在尝试运行顶级自定义管理栏时遇到问题。所以基本上当有人退出时他们会收到"登录"。登录后,他们会收到受保护的链接。这个问题有时是有效的,有时它并不适用。这不是每隔一段时间的问题,而是随机的时间。有时在手机上,有时在桌面上。我找不到任何一致性来确定问题。我的问题是,有没有人看到过这种情况?有什么我可以做的事情优先吗?如果指向任何问题,则它位于头文件中。
的functions.php
function personal_message_when_logged_in() {
if ( is_user_logged_in() ) :
global $wpdb;
$current_user = wp_get_current_user();
if (current_user_can( 'manage_options' )) {
$is_admin = "<a href='" . esc_url( home_url( 'wp-admin' ) ) . "'>| Admin</a>";
}else
$is_admin = "";
echo '<li class="firstSpaceInline legacySansBold loggedTab"><span class="welcomeMessage">Hi, ' . $current_user->user_nicename . '! | <a href="' . esc_url( home_url( 'my-menu' ) ) . '">My Menu<em></em></a></span> </li><li class="logOut"><span><a href="' . wp_logout_url( get_permalink() ) . '">Log Out</a> '.$is_admin.'</span></li>';
else :
echo '<li class="logInlink"><a href="' . esc_url( home_url( 'bv-login' ) ) . '"> <span class="glyphicon glyphicon-lock"></span> <span class="glyphicon-lock-text">Log In</span></a></li>';
endif;
}//if user logged
add_shortcode('personal_message_when_logged_in', 'personal_message_when_logged_in');
的header.php
<?php echo do_shortcode('[personal_message_when_logged_in]'); ?>
答案 0 :(得分:0)
这里有一些问题,但你需要做的主要改变是返回内容而不是直接输出内容。
function personal_message_when_logged_in() {
if ( is_user_logged_in() ) {
$current_user = wp_get_current_user();
$admin = '';
if ( current_user_can( 'manage_options' ) ) {
$admin = "<a href='" . admin_url() . "'>| Admin</a>";
}
$output = '<li class="firstSpaceInline legacySansBold loggedTab"><span class="welcomeMessage">Hi, ' . $current_user->user_nicename . '! | <a href="' . esc_url( home_url( '/my-menu' ) ) . '">My Menu<em></em></a></span> </li><li class="logOut"><span><a href="' . wp_logout_url( get_permalink() ) . '">Log Out</a> ' . $admin . '</span></li>';
} else {
$output = '<li class="logInlink"><a href="' . esc_url( home_url( '/bv-login' ) ) . '"> <span class="glyphicon glyphicon-lock"></span> <span class="glyphicon-lock-text">Log In</span></a></li>';
}
return $output;
}