Je cherche un moyen de protéger le contenu par des rôles d'utilisateur.
Exemple:
vous devez être enregistré pour voir les messages (frontend).
Si un utilisateur est un abonné, il peut lire les articles 1, 2 et 3, mais si l'utilisateur est un contributeur, il peut afficher les articles 1, 2, 3 et 4, 5, 6 ...
est-ce que quelqu'un sait comment je peux faire ça?
Bien que je n’ai pas utilisé cela personnellement, vous cherchez probablement un plugin comme celui-ci
Semble fournir toutes les fonctionnalités que vous avez demandées ci-dessus.
vous pouvez utiliser ces conditions pour afficher les publications privées uniquement aux utilisateurs connectés dotés du rôle contributor
. Maintenant, il vous suffit de rendre post private
pour rendre cette publication disponible pour le contributeur.
<?php
if ( have_posts() ) : while ( have_posts() ) : the_post();
$private = get_post_custom_values("private");
if (isset($private[0]) && $private == "true") {
if ( current_user_can( 'contributor' ) ) { //passing role to it may sometime not work
the_title();
the_content();
} else { // text to show instead the post
echo 'this post is private, only contributor can view it';
}
} else { // this is visible to all
the_title();
the_content();
}
endwhile;
endif;
?>
Pour réaliser quelque chose comme ça, vous pouvez rendre certaines publications privées et les montrer uniquement aux utilisateurs connectés. Vous devez d'abord ajouter un champ personnalisé, vous pouvez le nommer "privé" et le valoriser "Vrai". Puis ajoutez, remplacez la boucle par défaut WP par cet extrait de code:
<?php if (have_posts()) : while (have_posts()) : the_post();
$private = get_post_custom_values("private");
if (isset($private[0]) && $private == "true") {
if (is_user_logged_in()) {
// Display private post to logged user
}
} else {
// Display public post to everyone
}
endwhile; endif; ?>