我目前在网站中设置了两个成员区域。如果用户登录,然后决定浏览常规网站,当他们再次单击“会员区”图标时,我希望该页面确定哪个用户已登录,然后将其重定向到正确的成员区域。如果没有用户登录,则应显示登录表单。
我目前有以下内容:
<?php
if ( $session->logged_in ) {
if ( $username == "user1" ) {
wp_redirect ( home_url("/members-area-1") );
exit; }
} elseif ( $username == "user2" ) {
wp_redirect ( home_url("/members-area-2") );
exit;
} else {
?>
目前它没有重定向,它只显示登录表单,无论我登录的是哪个用户。关于如何使这项工作正常的任何建议?
(温柔,当谈到wordpress和php dev时,我仍然相当原始)
非常感谢,
答案 0 :(得分:2)
你可以试试这个
if ( is_user_logged_in() )
{
global $current_user;
if( $current_user->user_login == 'user1' )
{
wp_redirect( home_url("/members-area-1") );
}
elseif( $current_user->user_login == 'user2' )
{
wp_redirect( home_url("/members-area-2") );
}
else
{
// logged in but doesn't match
}
}
请参阅codex上的is user logged in()。
更新:要解决标头发送警告问题,您可以在functions.php
文件中添加以下代码以启用输出缓冲
add_action('init', 'buffer_start');
add_action('wp_footer', 'buffer_end');
function callback($buffer) { return $buffer; } // This is not necessury if you don't use callback argument in the ob_start function.
function buffer_start() { ob_start("callback"); }
function buffer_end() { ob_end_flush(); }