Vérifier l’accès à une page
Pour vérifier les droits d’accès à une page, le hook idéal est template_redirect
. Cette action est appelée juste avant que WordPress détermine quel modèle de page charger.
Il suffit donc d’intégrer une contrainte dans cet appel si l’accès à la page en cours d’affichage doit être protégé :
Dans cet exemple, j’autorise uniquement aux administrateurs l’accès à la page dont le slug est page-administrateur
.
Si l’accès est refusé, l’internaute est redirigé vers la page d’accueil. J’ai volontairement utilisé wp_safe_redirect
au lieu de wp_redirect
afin que WordPress vérifie si la redirection est faite vers une URL appartenant au nom de domaine du site. L’appel à wp_safe_redirect
est suivi par exit();
de manière à stopper le script dans le cas où WordPress ignorerait l’entête Location:
lors de la redirection. Sans rentrer dans les détails, disons que cela est une bonne manière de faire afin d’éviter des erreurs de fonctionnement.