Dans le cadre privé, il n’est pas rare de ne pas vouloir partager ses photos, vidéos et textes avec tout le monde.
Cependant, on souhaite pouvoir partager du contenu avec ses amis et sa famille, et cela doit être simple (de plus, ils ne doivent pas recevoir d’autorisations pour modifier la page d’accueil)… Beaucoup se tournent donc de préférence vers Facebook, pensant que le contenu y est privé — enfin, laissons de côté les commentaires à ce sujet…
Considérons une autre option : nous créons un site WordPress auquel seuls les utilisateurs enregistrés ont accès. Pour éviter que chacun n’ait à mémoriser un identifiant et un mot de passe, nous proposons, en plus de l’inscription standard, la possibilité de se connecter via Facebook.
Procédure
- Restreindre l’accès
- Configurer l’extension Members pour adapter la définition des rôles de WordPress et rediriger l’accès au site via la page de connexion
- Installer l’extension User Role Editor pour créer une capacité (autorisation) personnalisée
- Adapter le fichier functions.php du thème pour masquer le contenu du site aux abonnés
- Créer une page d’information pour les utilisateurs connectés qui ne possèdent pas les autorisations appropriées
- Installer/configurer l’extension Facebook pour permettre aux utilisateurs de Facebook de se connecter sans identifiant/mot de passe
- Créer une application Facebook
- Configurer une extension de connexion sociale (Nextend Social Login)
Restreindre l’accès au site
Configurer l’extension Members
- Empêcher l’accès général au contenu : le visiteur doit être connecté
- Créer un nouveau rôle « Family & Friends » : en tant qu’administrateur, nous pouvons déplacer manuellement les abonnés (qui n’ont aucune autorisation) vers ce nouveau rôle
Nous installons l’extension Members et nous occupons de ses réglages :
- Enable Private Site : cocher cette case — nous voulons que seuls les utilisateurs connectés puissent voir le contenu, les utilisateurs non connectés doivent donc être redirigés vers la page de connexion, quelle que soit la page qu’ils tentent de consulter
- REST API : cocher cette case — sinon, les articles et les pages peuvent également être consultés sans connexion via l’interface /wp-json/
- Disable Feed : cocher cette case — d’autres personnes ou services ne doivent recevoir aucune information sur le contenu
Les autres paramètres prédéfinis peuvent rester tels quels.
Créer une capacité personnalisée
Nous créons donc une capacité nommée oooooxooooo et l’attribuons au rôle « Family & Friends », ainsi qu’au rôle d’administrateur. Si d’autres rôles sont occupés sur l’installation WordPress (éditeur, etc.), tu peux également leur attribuer cette capacité. En tout cas, ne l’attribue PAS au rôle « Subscriber » (Abonné) !
Réglage supplémentaire dans le fichier functions.php
L’extension Members n’est malheureusement pas suffisante pour notre projet ou s’avère un peu complexe. En effet, avec l’extension Members, on impose seulement aux visiteurs de se connecter. Par défaut, un utilisateur connecté a accès à tous les contenus (pages / articles). Mais même si l’on définit les autorisations d’utilisateur pour toutes les pages et tous les articles, le visiteur non autorisé voit par exemple les titres des articles, seul le contenu est bloqué.
Ce n’est pas ce que nous souhaitons ; nous voulons bloquer complètement l’accès.
- Chaque thème possède un fichier
functions.php. Ce fichier central contrôle le comportement d’un thème et relie différents fichiers entre eux - Le code supplémentaire vérifie trois choses :
- si le visiteur est connecté,
- si le visiteur ne possède pas la capacité « oooooxooooo »
- et si l’utilisateur n’est pas déjà sur la page « Stop »
Si ces trois conditions sont remplies, le visiteur est redirigé vers la page « Stop », sinon il peut consulter les pages/articles. La troisième condition est importante : lorsqu’on appelle la page « Stop », aucune autre redirection ne doit avoir lieu, sinon la requête se transforme en une boucle infinie.
Code pour functions.php
function my_page_template_redirect(){
if( is_user_logged_in() && ! current_user_can( 'oooooxooooo' ) && ! is_page( 'stop' ) ){
wp_redirect( home_url( '/stop/' ) );
exit();
}
}
add_action( 'template_redirect', 'my_page_template_redirect' );
Code pour functions.php en cas de Multisite
function my_page_template_redirect(){
if( is_user_logged_in() && ! current_user_can_for_site( get_current_blog_id(), 'oooooxooooo' ) && ! is_page( 'stop' ) ){
wp_redirect( home_url( '/stop/' ) );
exit();
}
}
add_action( 'template_redirect', 'my_page_template_redirect' );
Page d’informations pour les utilisateurs refusés
Les visiteurs qui se connectent mais ne possèdent pas les autorisations requises ne devraient pas simplement voir une page blanche ou un message d’erreur quelconque. Il est bien préférable d’afficher à ces personnes une page indiquant qu’elles n’ont pas d’autorisation et qu’elles doivent, le cas échéant, contacter l’administrateur du site. Une indication supplémentaire pour les utilisateurs de Facebook qui utilisent la connexion Facebook pour la première fois et n’ont donc pas d’autorisation est également judicieuse.
Connexion Facebook
Quelle que soit l’extension de connexion Facebook utilisée, nous avons besoin d’une application Facebook à laquelle l’extension peut se connecter lorsqu’un utilisateur de Facebook souhaite s’identifier.
État en 2026 : Meta impose désormais des exigences nettement plus élevées pour de telles applications (HTTPS, page de politique de confidentialité et de suppression des données, et généralement une vérification de l’entreprise ainsi qu’un examen de l’application pour les utilisateurs extérieurs à l’application). Pour un site familial privé, la connexion Google, que l’extension mentionnée ci-dessous propose également gratuitement, est souvent la voie la plus simple.
Créer une application Facebook
- Créer une nouvelle application : nom de l’application + e-mail de contact, choisir « Facebook Login » comme cas d’utilisation
- Personnaliser Facebook Login : ajouter l’autorisation « email » et saisir l’URI de redirection OAuth valide affichée par l’extension (le site doit être accessible via HTTPS)
- Paramètres > Général : saisir le domaine de l’application, l’URL de la politique de confidentialité, des conditions d’utilisation et des instructions de suppression des données, la catégorie et l’icône de l’application ; ajouter une plateforme -> Site web -> saisir l’URL (enregistrer)
- Pour que des personnes n’ayant pas de rôle dans l’application puissent également se connecter : passer par la vérification de l’entreprise et l’examen de l’application, puis passer l’application du mode développement au mode « Live »
- Copier l’ID de l’application et la clé secrète de l’application et les coller dans WP
Configurer Nextend Social Login
Pour que l’extension fasse ce que nous voulons, nous devons configurer les éléments suivants :
- Copier les données de l’application Facebook et les saisir dans l’extension
- Les inscriptions et les connexions doivent être autorisées (dans Nextend : Général > Inscription > Activé)
- Les utilisateurs se connectant via les réseaux reçoivent initialement le rôle « Abonné » (Subscriber) — c’est le rôle par défaut pour les nouveaux utilisateurs, que nous vérifions par sécurité sous Réglages > Général : on n’est jamais trop prudent !
Lorsqu’un nouvel utilisateur Facebook s’inscrit, nous souhaitons également être informés afin de modifier les autorisations (ou non, s’il ne s’agit pas de personnes souhaitées). Nextend envoie par défaut la notification WordPress lors des nouvelles inscriptions, l’administrateur reçoit donc un e-mail. Dans la version Pro, il est possible de sélectionner uniquement « Admin » sous Notification d’inscription envoyée à.
Optionnel : supprimer la barre d’administration
Si l’on souhaite que les utilisateurs du groupe « Family & Friends » ou ceux qui ne sont pas administrateurs (ou n’ont pas d’autorisations d’administrateur) ne voient pas la barre d’administration, on peut alors la masquer en conséquence. Pour cela, du code est à nouveau ajouté dans le fichier functions.php :
function remove_admin_bar() {
if( ! current_user_can('manage_options') && ! is_admin() ){
show_admin_bar(false);
}
}
add_action('after_setup_theme', 'remove_admin_bar');
Attention : cela signifie bien sûr que ces utilisateurs ne peuvent pas accéder facilement à leur profil et ne peuvent donc pas modifier leurs propres données. Pour pallier cela, nous pouvons ajouter une entrée dans un menu approprié, par exemple « Modifier le profil », qui pointe vers https://mon-site.tld/wp-admin/profile.php.
Récapitulatif
La connexion seule ne suffit pas, le visiteur ne doit pas appartenir au groupe (rôle) Abonné (c’est d’ailleurs le rôle par défaut lors de la création d’utilisateurs) et doit posséder une autorisation supplémentaire oooooxooooo. Les visiteurs non autorisés sont redirigés vers la page « Stop ».
En plus de tout cela, nous avons mis en place un « connecteur Facebook » : les utilisateurs de Facebook peuvent se connecter sans saisir d’identifiant ni de mot de passe. Les nouveaux utilisateurs Facebook connectés appartiennent automatiquement au groupe Abonné et ne peuvent rien voir pour le moment. Attention : si le visiteur utilise un bloqueur de publicité, il se peut que la connexion Facebook échoue.
En tant qu’administrateur, je suis automatiquement informé des nouvelles inscriptions : si je connais l’utilisateur Facebook, je lui attribue alors le rôle « Family & Friends ».
Tu planifies un nouveau site web ? Nous développons des sites WordPress que tu peux gérer toi-même. En savoir plus sur les sites WordPress





