2016-05-13 21 views
1

以下の機能を使用して、管理者以外のユーザーをログイン時の管理者ページではなく私のサイトのホームページにリダイレクトします。私のサイトのサブドメインを指すように関数を適合させる方法はありますか?ユーザーがWordpressサイトにログインしたときにサブドメインにリダイレクトする機能

site_url()の場所にサブドメインの完全なURLを入力しようとしましたが、これは機能しません。これを達成する別の方法がありますか?基本的には、ユーザーはログイン時に談話フォーラムにリダイレクトされます。文字列(URL)がlogin_redirectフィルタ機能に返された場合

function acme_login_redirect($redirect_to, $request, $user ) { 
    return (is_array($user->roles) && in_array('administrator', $user->roles)) ? admin_url() : site_url(); 
} 
add_filter('login_redirect', 'acme_login_redirect', 10, 3); 

答えて

1

login_redirectフィルタはwp_safe_redirect()を呼び出します。

そしてwp_safe_redirect()チェック返される文字列(URL)が許可されたホストのリスト内であるかどうか返される文字列が許可されたホストに存在する場合、次いでwp_safe_redirect()は、返される文字列(URL)にユーザーをリダイレクトするそうでなければユーザの意志代わりにsiteurlのwp-adminにリダイレクトされます。

login_redirectフィルタを追加する前に、フィルタをallowed_redirect_hostsフィルタを使用してホワイトリストに追加する必要があります。詳細情報については

function my_allowed_redirect_hosts($content){ 
    $content[] = 'google.com'; // Do not add http:// 

    return $content; 
} 
add_filter('allowed_redirect_hosts' , 'my_allowed_redirect_hosts' , 10); 

function acme_login_redirect($redirect_to, $requested_redirect_to, $user) { 
    if (is_array($user->roles) && in_array('administrator', $user->roles)) { 
     return admin_url(); 
    } 
    else 
    { 
     return 'http://google.com'; 
    } 
} 
add_filter('login_redirect', 'acme_login_redirect', 10, 3); 

login_redirectに行くかlogin_redirect作品についての詳細を知っていると御馳走を作品807

+1

行目にスクロールするにはallowed_redirect_hosts

をご確認ください。機能と詳細な説明をありがとう。非常に役立ちます。 – Nick

関連する問題