Comment Restreindre l’Accès à votre Contenu aux Utilisateurs Connectés

Si vous gérez un blog ou un site WordPress de manière générale, il vous arrive alors parfois de vouloir restreindre l’accès à un certain contenu de vos pages ou de vos articles uniquement aux utilisateurs connectés.

Des exemples de contenu à cacher, il en existe plein : les résultats d’un concours, un formulaire de dépôt d’une annonce, des images, etc.

Je vais vous présenter dans ce petit tutoriel une manière de forcer vos utilisateurs de se connecter pour consulter votre contenu. Vous verrez que celle-ci est très simple à mettre en place.

Comment Restreindre l’accès à son Contenu avec un shortcode

C’est une méthode que je trouve très pratique puisqu’elle permet de créer un shortcode utilisable partout dans les pages, articles et widgets.

Sans plus attendre, voici comment ceci est implémenté. Vous l’aurez peut-être deviné, c’est en ajoutant un petit bout de code dans le fichier functions.php de votre thème. Dans votre thème enfant de préférence afin d’éviter de se faire écraser à la prochaine mise à jour de votre thème. Voici comment créer un thème enfant et comment ajouter des fonctions à ce dernier.

function membre_connect_shortcode($atts, $content = null) {
   if (is_user_logged_in() && !is_null($content) && !is_feed()) {
   return do_shortcode($content);
   }
   return '<p>Veuillez vous connecter pour consulter ce contenu.</p>';
}
add_shortcode('membre', 'membre_connect_shortcode');

La fonction membre_connect_shortcode permet de vérifier si l’utilisateur est connecté, auquel cas il verra le contenu s’afficher. Dans le cas contraire, il verra le message « Veuillez vous connecter… ».

Le raccourci, ou shortcode, que l’on a nommé ici « membre » s’utilise par la suite de la manière suivante pour afficher le contenu réservé aux membres connectés :

[membre]Votre contenu réservé aux utilisateurs connectés...[/membre]

Ce shortcode est utilisé ici pour du simple texte réservé aux personnes connectées. Mais rien ne vous empêche de vouloir cacher tout un bloc de contenu généré par un autre shortcode d’un plugin que vous utilisez.

Prenons l’exemple d’un slider généré par le fameux plugin Revolution Slider que vous souhaitez uniquement à vos lecteurs connectés. Si vous avez lu l’article du plugin cité juste dans la ligne d’au-dessus, nous savons que l’affichage d’un slider peut se faire à l’aide d’un shortcode (une fois le slider créé) de type [rev_slider article1].

Ce sera donc un slider que l’on souhaite insérer dans l’article1, mais uniquement visible aux utilisateurs connectés. Voici comment cela se fait :

[membre][rev_slider article1][membre]

C’est tout. C’est une ligne que vous ajoutez dans votre éditeur de texte de votre article, ou page. C’est aussi simple que cela.

De manière générale, pour tout contenu généré par un shortcode d’un plugin, cela se fait de la manière suivante dans votre éditeur :

[membre][le-shortcode-de-votre-plugin][membre]

Pas très compliqué jusque là.

Reste maintenant le message affiché aux utilisateurs non connectés. C’est bien de l’afficher dans un français correct, mais qu’en est-il si vous avez un site WordPress multilingue et que vous souhaitez que ce message soit traduit automatiquement dans les autres langues installées sur votre site?

Et bien tout d’abord, il faut rendre ce message traduisible de telle manière à ce que lorsque vous souhaiterez traduire votre thème – si ce n’est pas déjà fait – vous ayez ce message à traduire avec les autres mots et expressions du thème à traduire.

Comment cela se fait? Ce point a été abordé dans le tutoriel traitant la traduction des thèmes et plugins WordPress. Pour faire court, je vous donne ici la solution avec la ligne de code contenant notre message prêt à être traduit.

return '<p>_e('Veuillez vous connecter pour consulter ce contenu', 'MonThemeWP').</p>';

Je vous encourage à lire l’article cité juste au-dessus pour comprendre comment se faire la traduction d’un thème WordPress. Vous aurez à le faire puisque vous venez d’ajouter un message qui devra être traduit si vous avez un site multilingue.

Conclusion

C’était court, mais pourquoi faire long quand on peut faire court?

Alors, évidemment il existe des plugins pour ce travail, mais en faisant une recherche vous remarquerez que la plupart propose des systèmes de gestion complets avec une dizaine de fonctionnalités dont on n’a pas besoin. Peut-être existe-t-il un plugin simple, mais à quoi bon si l’on a réussi à faire cela avec 5 lignes de code.

Enfin, je trouve que c’est beaucoup plus pratique de balancer un petit shortcode [membre][/membre] à chaque fois que j’ai envie de cacher quelque chose aux utilisateurs non connectés.

La parole est à vous maintenant. Quelle technique ou alors quel plugin utilisez-vous pour restreindre l’accès à certain de votre contenu aux membres non connectés? Sinon, que pensez-vous de la technique présentée ci-dessus, c’est pratique non?

Cet article vous a plu?

Abonnez-vous alors à notre newsletter pour recevoir des trucs utiles pour votre site WordPress.

Une réponse

  1. richard pascale 29 juin 2016

Laisser un Commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Créer et Gérer sa Newsletter avec Mailchimp & l’Intégrer à WordPressSuivre le tutoriel
+ +

Recevez du contenu
WordPress exclusif

Abonnez-vous à notre newsletter et recevez des trucs utiles pour mieux utiliser votre site WordPress!