WordPress theme development: hoe authenticatie afdwingen voor bepaalde pagina’s

WordPress theme development: hoe authenticatie afdwingen voor bepaalde pagina’s

WordPress theme development: hoe authenticatie afdwingen voor bepaalde pagina’s 2560 1707 Thibault

Wanneer je een eigen WordPress thema maakt, zijn er wellicht bepaalde pagina’s die je enkel wil tonen aan ingelogde gebruikers. Aan de hand van deze ingebouwde functie is dat kinderspel!

Wil je een bepaalde pagina achter slot en grendel steken, dan volstaat het om in de template file voor die specifieke pagina bovenaan volgende code toe te voegen:

if ( !is_user_logged_in() ) {
        auth_redirect();
    }

Bovenstaande code checkt of de gebruiker is ingelogd. Indien dit niet zo is, dan wordt de gebruiker doorgestuurd naar /wp-login. Na het inloggen stuurt WordPress de gebruiker terug naar de vorige pagina.

Uitbreiding: rollen controleren

Wil je dat enkel bepaalde rollen de pagina kunnen weergeven? Dan kan je de bovenstaande functionaliteit ook verder uitbreiden.

Concreet stel je een array op met alle rollen die toegang mogen hebben tot de pagina. Vervolgens ga je via array_intersect() controleren of de huidige gebruiker een of meerdere van de vooropgestelde rollen heeft.

$user = wp_get_current_user();
$toegelaten_rollen = array('administrator', 'author');

if( array_intersect($toegelaten_rollen, $user->roles ) ) {  
   // De huidige gebruiker behoort tot een van de toegelaten rollen...
}

Indien je slechts 1 bepaalde rol toegang wil geven tot de pagina, dan kan je ook onderstaande code gebruiken:

$user = wp_get_current_user();

if ( in_array( 'administrator', (array) $user->roles ) ) {
    // De huidige gebruiker is een administrator
}

Laat een reactie achter