1

現在、サイト内に2つのメンバーエリアを設定しています。ユーザーがログインしてから一般的なWebサイトを閲覧することにした場合、[メンバーエリア]アイコンをもう一度クリックすると、そのページでログインしているユーザーを特定し、正しいメンバーにリダイレクトします。範囲。ログインしているユーザーがいない場合は、ログインフォームが表示されます。

私は現在次のものを持っています:

<?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に関してはまだかなり生意気です)

どうもありがとう、

4

1 に答える 1

3

あなたはこれを試すことができます

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
    }
}

コーデックスでユーザーがログイン()しているを参照してください。

更新:ヘッダー送信警告の問題を解決するために、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(); }
于 2013-02-04T00:00:19.797 に答える