2016-05-13 7 views
1

Ich benutze die Funktion unten, um Nicht-Admin-Benutzer auf die Homepage meiner Website statt die Admin-Seite bei der Anmeldung umleiten, und ich frage mich, ob es gibt Wie kann ich die Funktion so anpassen, dass sie auf eine Subdomain meiner Site zeigt?Funktion zum Umleiten an Subdomain, wenn Benutzer sich in Wordpress-Site anmeldet

Ich habe versucht, die vollständige URL der Subdomain in Ort site_url() eingeben, aber das funktioniert nicht. Gibt es einen anderen Weg, dies zu erreichen? Grundsätzlich möchte ich, dass der Benutzer beim Login in unser Diskursforum weitergeleitet wird.

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); 

Antwort

1

Die login_redirect Filter ruft wp_safe_redirect() ob ein String (URL) in der login_redirect Filterfunktion zurückgeführt wird.

Dann wp_safe_redirect() überprüft, ob die zurückgegebene Zeichenfolge (url) in der Liste der erlaubten Hosts ist oder nicht, wenn die zurückgegebene Zeichenfolge in den erlaubten Hosts vorhanden ist, dann wird wp_safe_redirect() einen Benutzer umleiten zu, dass String zurückgegeben (url) sonst ein Benutzer stattdessen zu wp-admin auf der siteurl weitergeleitet werden.

Bevor Sie also den login_redirect Filter hinzufügen, sollten Sie den Host in die Whitelist mit allowed_redirect_hosts Filter hinzufügen.

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); 

Für weitere Informationen überprüfen allowed_redirect_hosts

Um mehr darüber zu wissen, wie LOGIN_REDIRECT funktioniert, gehen Sie zu login_redirect und blättern 807

+1

Zeile, die eine Behandlung funktioniert. Danke für die Funktion und für die ausführliche Erklärung. Sehr hilfreich. – Nick

Verwandte Themen