WordPress: créer un site Web privé pour la famille et les amis

Dans un cadre privé, il n'est pas rare que vous ne souhaitez pas partager vos photos, vos vidéos et vos documents écrits avec tous.

Cependant, les partager avec vos amis et votre famille peut être intéressant. Facebook apparait parfois comme la solution idéale et facile. Beaucoup de personnes l’utilisent en pensant que le contenu reste bien privé - sans commentaire ...

Nous vous proposons une autre option (beaucoup plus sécurisée) : la création d’une page d'accueil WordPress accessible uniquement aux utilisateurs enregistrés. Pour que les visiteurs n’aient pas à se souvenir de leur mot de passe à chaque connexion, nous allons évidemment offrir la possibilité de s'inscrire – vous, votre famille et vos amis - via le login Facebook.

Méthode

Comment faire ?

  • Limiter l'accès
    • Configurer le plugin Members pour définir des rôles sur WordPress et rediriger l'accès à la page d'accueil du site Web via la page de connexion
    • Installer le plugin de l'éditeur des rôles WordPress (User role editor) pour créer une capacité individuelle
    • Personnaliser le fichier functions.php du thème pour cacher le contenu de la page d'accueil aux utilisateur ayant le rôle abonnés
    • Créer une page avec des informations pour les utilisateurs connectés, mais qui n'ont pas encore les autorisations appropriées
  • Installer / configurer un plugin pour permettre aux utilisateurs Facebook de se connecter sans identifiant ni mot de passe (Facebook Login)
    • Créer une application Facebook
    • Configurer le plugin WordPress Social

Limiter l'accès à la page d'accueil

Configurer le plugin "Members"

Ce plugin a deux fonctions pour notre cas d'utilisation :

  1. Interdir l'accès aux contenus de facon générale : les visiteurs doivent être inscrits.
  2. Créer un nouveau rôle Famille & Amis : en tant qu'administrateur, nous pouvons déplacer manuellement les abonnés (qui n'ont pas encore d'autorisations) au nouveau rôle Famille & Amis

Nous installons le plugin et nous nous occupons des paramètres :

  • Activation du site privé. Seul les visiteurs autorisés ont accès au contenu du site Web ; toutes les requêtes redirigent le visteur à la page d'inscription / de connexion tant que le visiteur n'est pas identifié.
  • Désactivation Feed. Aucune personne ou service non enregistré ne peut recevoir d'informations sur le contenu du site Web.

Les autres paramètres prédéfinis peuvent rester.

Créer une capacité individuelle

Le plugin d’éditeur de rôles utilisateurs (User Role Editor)  est populaire et gratuit. Il permet d’attribuer des rôles sous WordPress. Nous allons créer une nouvelle capacité pour notre projet et vérifier si le visiteur a ou non cette autorisation.

Nous créons ainsi une capacité appelée oooooxooooo et nous l’assignons au rôle "Famille et amis" ainsi qu'au rôle d'administrateur. Si votre site contient des utilisateurs utilisant d'autres rôles  (éditeur, ...), vous pouvez également les y attribuer. Dans tous les cas, NE PAS assigner la capacité au rôle "abonné" !

Paramètres supplémentaires des fonctions.php

Le plugin membres n'est malheureusement pas suffisant pour notre projet. En effet, avec ce plugin, vous pouvez uniquement inciter les visiteurs à s’inscrire. Par défaut, un utilisateur connecté a accès à tous les contenus (pages / articles) du site. Mais même si vous définissez les autorisations d'utilisateur sur toutes les pages et tous les articles, le visiteur non autorisé (par défaut, c'est le rôle abonné) obtient, par exemple, les titres des articles, seul le contenu est verrouillé.

Ce n'est pas ce que nous souhaitons ; nous voulons bloquer complètement l'accès à tous ceux qui n'ont pas explicitement l'autorisation de voir les contenus..

Code pour fonctions.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' );

Pour bloquer complètement le site, les visiteurs non autorisés doivent être redirigés vers une page spécifique. Pour cela, nous ajoutons un code supplémentaire au fichier functions.php du thème.

Voici quelques brèves explications :

  • Chaque thème a une functions.php. Ce fichier central contrôle le comportement d'un thème et relie différents fichiers ensembles.
  • Le code supplémentaire vérifie 3 éléments :
  • Le visiteur est connecté
  • Le visiteur n'a pas la capacité oooooxooooo
  • Le visiteur n’est pas déjà sur la page Stop

Les 3 conditions remplies, le visiteur est renvoyé à une page "Stop".

Code pour fonctions.php Multisite

function my_page_template_redirect(){
  global $blog_id;
  if( is_user_logged_in() && ! current_user_can_for_blog( $blog_id, 'oooooxooooo') && ! is_page( 'stop' ) ){
    wp_redirect( home_url( '/stop/' ) );
    exit();
  }

}

add_action( 'template_redirect', 'my_page_template_redirect' );

Page d’informations (Stop) pour les utilisateurs rejetés

Les visiteurs qui s'inscrivent sans avoir les autorisations nécessaires ne doivent pas être simplement renvoyés sur une page blanche ou vers un message d'erreur. Il est, effectivement, préférable de les avertir qu’ils n’ont pas les droits pour accéder à cette page Web et les renvoyer vers le propriétaire de la page. Une information supplémentaire peut être indiquée aux utilisateurs de Facebook qui utilisent cette connexion pour la première fois et ne disposent donc pas encore d'autorisation.

Connexion Facebook

Afin de ne pas avoir avoir à inscrire tous vos amis au préalable et de les forcer à mémoriser des nouvelles données d'accàs, nous installons une fonction de connexion à Facebook. Comme vous l'avez probablement déjà vu, nous allons mettre en place un bouton "Connectez-vous avec Facebook" sur la page de connexion du site Web.

Quel que soit le plugin de connexion Facebook utilisé, nous avons besoin d'une application Facebook, à laquelle le plugin peut se connecter si un utilisateur de Facebook souhaite se connecter.

Application Facebook

Pour créer une application Facebook, connectez-vous ici : https://developers.facebook.com. L'explication ne va pas dans trop le détail, mais en suivant la procédure ci-dessous, vous devriez y arriver facilement.

Bien sûr, vous devez avoir des données d'accès Facebook, sinon inscrivez-vous.

  • Créez une nouvelle application
  • -> Créer l'ID de l'application - Nom d'affichage + email de contact
  • Contrôle de sécurité (Captcha)
  • Paramètres : Sélectionnez une catégorie, ajoutez une plateforme -> Site Web -> Entrez l'URL (sans slash à la fin). Enregistrez
  • App Review : publier et confirmer
  • Copiez et collez les codes dans WordPress

Configurer un plugin WordPress Social Login

Nous utilisons maintenant comme plugin WordPress Social Login : ce plugin est gratuit et peut également être utilisé pour Google, Twitter et beaucoup d'autres réseaux.

Pour que la connexion fonctionne comme souhaité, nous allons configurer les points suivants :

  1. Copier et coller les données de l'application Facebook dans le plugin
  2. Les enregistrements et les demandes d’inscription sont autorisées
  3. Les utilisateurs connectés via les réseaux sociaux reçoivent le rôle «Abonné» - c'est le groupe par défaut, mais vous êtes libre de le définir explicitement

En tant qu'admin, pour être informé qu’un nouvel utilisateur Facebook s'est inscrit, effectuez ce paramétrage : Paramètres > Connexion sociale WP > Widget> Paramètres avancés > Notification > "Notifiez uniquement l'administrateur de blog d'un nouvel utilisateur".

Ajout des données Facebook App

Paramètres généraux

Autorisation pour les nouveaux enregistrements

Facultatif : Supprimer la barre d'administration

Si vous souhaitez que les utilisateurs du groupe «Famille & amis» ou les non-administrateurs ne voient pas la barre d'administration, vous pouvez la cacher. Pour cela, un code est ajouté dans les fonctions.php :

function remove_admin_bar() {
if( ! current_user_can('administrator') && ! is_admin() ){
show_admin_bar(false);
}
}
add_action('after_setup_theme', 'remove_admin_bar');

En résumé

Nous avons modifié un site web existant, de sorte que le contenu ne peut être vu qu'après inscription du visiteur - si le rôle correspond.

Le login seul ne suffit pas, le visiteur peut ne pas appartenir au groupe des abonnés (rôle par défaut) et doit avoir une autorisation supplémentaire oooooxooooo. Les visiteurs qui ne l'ont pas sont redirigés vers une page définie au préalable qui les informe du manque de droits nécessaires pour voir les contenus du site.

Ensuite, nous avons mis en place un «connecteur Facebook» : les utilisateurs de Facebook peuvent se connecter sans entrer de mot de passe. Les utilisateurs de Facebook nouvellement inscrits sont en attente de votre autorisation et ne peuvent accéder à quoi que ce soit avant votre validation. Attention : si le visiteur utilise un adblocker, la connexion Facebook peut échouer.

En tant qu'administrateur, vous êtes automatiquement informé des nouveaux enregistrements. Si vous connaissez l'utilisateur de Facebook, vous pourrez lui attribuer le rôle «Famille & Amis».