Snippety

Přesměrování uživatelů

Autor příspěvku Zdeněk Vojáček

Může se Vám stát, že budete potřebovat přesměrovat uživatele na vašich stránkách.

Například budete mít web jen pro registrované uživatele a nechcete aby se tam brouzdal někdo nepřihlášený. Uděláte to tak, že následující kód přidáte do functions.php v šabloně.

function funkce_pro_presmerovani() {
if ( ! is_user_logged_in()) {
wp_redirect( home_url() . '/wp-login.php' );
exit;
}
}
add_action( 'template_redirect', 'funkce_pro_presmerovani' );

Funkce udělá to, že pokud není uživatel přihlášen, tak ho to přesměruje na zvolenou stránku. V tomto případě na stránku http://vaše_doména.cz/wp-login.php
Poté funkci pro přesměrování zavěsíme do kotvy která se spustí před načtením stránky. Tím docílíme toho že místo stránky, kterou chtěl nepřihlášený uživatel otevřít, se mu otevře námi zvolená stránka.

Další možností použití je přesměrování přihlášených uživatelů. Například nepotřebujete aby se administrátor a čtenář přihlásili do stejné sekce.
function presmerovani_uzivatele_podle_role(){
global $current_user;
get_currentuserinfo();

$uziv_roles = $current_user->roles;
$uziv_role = array_shift($uziv_roles);
if ($uziv_role == 'Administrator'){
wp_redirect( home_url() . '/administrace' ); exit;
}elseif($uziv_role == 'Autor'){
wp_redirect( home_url() . '/stranka-pro-autory' ); exit;
}elseif($uziv_role == 'Ctenar'){
wp_redirect( home_url() . '/stranka-pro-ctenare' ); exit;
}else{
wp_redirect( home_url() . '/stranka-pro-ostatni-prihlasene' ); exit;
}

add_action('admin_init','presmerovani_uzivatele_podle_role');

Pomoci prvních čtyř příkazů v naší funkci si zjistíme kdo je přihlášen, načteme si jeho informace a z nich si do proměnné $Uziv_role uložíme název uživatelovi role.

Poté si jen pomocí funkce IF určíme kam přesměrujeme uživatele s danou rolí.

Nakonec celý kód zavěsíme do kotvy jako v prvním případě.

O autorovi

Zdeněk Vojáček

Milovník žen, masa a PHP kódu

Zanechat komentář

Získejte více informací o WordPress!

Připojte se do našeho emailového seznamu a nenechte si ujít informace, novinky a návody ze světa WordPressu.

Úspěšně jste se zapsali do našeho newsletteru. Děkujeme!