Marketing de Contenu

WordPress : créez un modèle de page qui nécessite qu'un utilisateur soit enregistré et connecté

Nous terminions de mettre en œuvre un thème personnalisé sur un site client, et ils nous ont demandé de créer une sorte d'interaction dans laquelle certaines pages étaient réservées aux abonnés enregistrés. WordPress propose des options de visibilité pour les pages, mais cela ne convient pas à ce scénario.

  • Chef – La sélection de la visibilité comme privée permet uniquement aux administrateurs et aux éditeurs d'afficher le contenu.
  • Mot de passe protégé – nécessite qu’un code unique soit appliqué pour chaque page pour afficher le contenu.

Au début, nous avons pensé à implémenter des plugins tiers, mais la solution était simple. Nous pourrions créer un modèle unique qui obligerait les téléspectateurs à s'inscrire et à se connecter pour afficher la page.

Modèle WordPress : abonnés uniquement

Tout d'abord, nous avons copié le modèle de page de notre client (page.php) dans le thème enfant. Pour créer un modèle, vous devez ajouter du code en haut de votre page :

<?php /* Template Name: Subscribers Only */ ?>

Ensuite, recherchez la ligne dans le code de votre page qui affiche le contenu. Ça devrait ressembler à ça:

<?php the_content(); ?>

Maintenant, vous devrez envelopper du code autour de cette ligne:

<?php
$redirect_url = get_permalink(); // Get the current page's URL

if (is_user_logged_in()) :
?>
    <h2><?php the_title(); ?></h2>
    <?php the_content(); ?>
<?php else : ?>
    <h2>Subscriber Only</h2>
    <p>We're sorry, the content you are trying to reach is restricted to certain roles. <a href="<?php echo wp_login_url($redirect_url); ?>">Log in</a> to access it.</p>
<?php endif; ?>

Voici une explication du code sous forme de puces :

  • $redirect_url = get_permalink();: Cette ligne récupère l'URL de la page courante et la stocke dans la variable $redirect_url.
  • if (is_user_logged_in()) :: Cette instruction conditionnelle vérifie si un utilisateur est déjà connecté.
  • Si l'utilisateur est connecté, le code contenu dans ce bloc est exécuté.
    • <h2><?php the_title(); ?></h2>: Ceci affiche le titre de la page actuelle.
    • <?php the_content(); ?>: Ceci affiche le contenu de la page actuelle.
  • Si l'utilisateur n'est pas connecté, le code contenu dans le else bloc est exécuté.
    • <h2>Subscriber Only</h2>: Ceci affiche un en-tête indiquant que le contenu est restreint.
    • <p>We're sorry, the content you are trying to reach is restricted to certain roles. <a href="<?php echo wp_login_url($redirect_url); ?>">Log in</a> to access it.</p>: Ceci affiche un message expliquant que le contenu est restreint à certains rôles et fournit un lien « Connexion ». Le lien href L'attribut est défini sur l'URL de connexion générée par wp_login_url($redirect_url), garantissant que les utilisateurs sont redirigés vers la page actuelle après s'être connectés.

Ce code vérifie efficacement si un utilisateur est connecté et, dans le cas contraire, l'encourage à se connecter pour accéder au contenu restreint, avec un lien qui le renvoie vers la page qu'il essayait de consulter.

Afficher par rôle d'utilisateur spécifique

Vous pouvez également limiter le contenu à des rôles d'utilisateur spécifiques si vous le souhaitez :

<?php
$allowed_roles = array('subscriber', 'editor', 'author'); // Add the roles you want to allow

$user = wp_get_current_user();
$redirect_url = get_permalink();

if (array_intersect($allowed_roles, $user->roles)) :
?>
    <h2><?php the_title(); ?></h2>
    <?php the_content(); ?>
<?php else : ?>
    <h2>Restricted Access</h2>
    <p>We're sorry, the content you are trying to reach is restricted to certain roles. 
    <a href="<?php echo wp_login_url($redirect_url); ?>">Log in</a> to access it.</p>
<?php endif; ?>

Voici une explication du code sous forme de puces :

  • $allowed_roles = array('subscriber', 'editor', 'author');: Cette ligne crée un tableau de rôles autorisés, spécifiant quels rôles d'utilisateur sont autorisés à accéder au contenu. Vous pouvez personnaliser ce tableau pour inclure les rôles que vous souhaitez autoriser.
  • $user = wp_get_current_user();: Ce code récupère des informations sur l'utilisateur actuel, y compris ses rôles.
  • $redirect_url = get_permalink();: Cette ligne stocke l'URL de la page actuelle dans le $redirect_url variable, qui sera utilisée pour rediriger l'utilisateur vers la page actuelle après sa connexion.
  • if (array_intersect($allowed_roles, $user->roles)) :: Cette instruction conditionnelle vérifie si les rôles de l'utilisateur recoupent les rôles répertoriés dans le $allowed_roles tableau. En d’autres termes, il vérifie si l’utilisateur possède l’un des rôles autorisés.
  • Si l'utilisateur possède l'un des rôles autorisés, le code contenu dans ce bloc est exécuté.
    • <h2><?php the_title(); ?></h2>: Ceci affiche le titre de la page actuelle.
    • <?php the_content(); ?>: Ceci affiche le contenu de la page actuelle.
  • Si l'utilisateur ne possède pas l'un des rôles autorisés, le code dans le else bloc est exécuté.
    • <h2>Restricted Access</h2>: Ceci affiche un en-tête indiquant que le contenu est restreint.
    • <p>We're sorry, the content you are trying to reach is restricted to certain roles. <a href="<?php echo wp_login_url($redirect_url); ?>">Log in</a> to access it.</p>: Ceci affiche un message expliquant que le contenu est restreint à certains rôles et fournit un lien « Connexion ». Le lien href L'attribut est défini sur l'URL de connexion générée par wp_login_url($redirect_url), garantissant que les utilisateurs sont redirigés vers la page actuelle après s'être connectés.

Ce code restreint efficacement l'accès à des rôles spécifiques, et si un utilisateur ne possède pas l'un des rôles autorisés, il l'invite à se connecter avec un lien qui le redirigera vers la page actuelle après s'être connecté.

Sélectionnez votre modèle

Pour utiliser la page, vous devrez sélectionner le Abonnés seulement modèle de page dans la section avancée des options de votre page (sur la barre latérale). Cela limitera la page aux lecteurs connectés ou à vos rôles définis.

Douglas Karr

Douglas Karr est le directeur marketing de OuvrirINSIGHTS et le fondateur de la Martech Zone. Douglas a aidé des dizaines de startups MarTech à succès, a contribué à la due diligence de plus de 5 milliards de dollars d'acquisitions et d'investissements MarTech, et continue d'aider les entreprises à mettre en œuvre et à automatiser leurs stratégies de vente et de marketing. Douglas est un expert et conférencier de renommée internationale en matière de transformation numérique et de MarTech. Douglas est également l'auteur d'un guide pour les nuls et d'un livre sur le leadership d'entreprise.

Articles Relatifs

Retour à bouton en haut
Fermer

Adblock détecté

Martech Zone est en mesure de vous fournir ce contenu gratuitement car nous monétisons notre site grâce aux revenus publicitaires, aux liens d'affiliation et aux parrainages. Nous vous serions reconnaissants de supprimer votre bloqueur de publicités lorsque vous consultez notre site.