如果特定用户已登录,Wordpress将重定向

时间:2013-02-03 23:06:34

标签: php wordpress

我目前在网站中设置了两个成员区域。如果用户登录,然后决定浏览常规网站,当他们再次单击“会员区”图标时,我希望该页面确定哪个用户已登录,然后将其重定向到正确的成员区域。如果没有用户登录,则应显示登录表单。

我目前有以下内容:

<?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时,我仍然相当原始)

非常感谢,

1 个答案:

答案 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(); }