WordPress vous permet de créer des publications protégées par mot de passe. Récemment, un de nos lecteurs a demandé s'il était possible de masquer les publications protégées par mot de passe sur le site. Par défaut, WordPress masque le contenu d’une publication protégée par mot de passe, mais il affiche toujours le titre de la publication avec le préfixe « Protégé ». Dans cet article, nous allons vous montrer comment masquer les publications protégées par mot de passe de la boucle WordPress.
Par défaut, WordPress affiche la publication protégée par mot de passe avec son titre et un préfixe « protégé ». Les utilisateurs devront saisir le mot de passe pour afficher le contenu de la publication.
Ce titre de publication est visible sur la page d’accueil, les archives, le widget de publications récentes, etc. Si vous souhaitez garder certains contenus complètement privés, ce n’est pas idéal.
Non seulement les utilisateurs qui n’ont pas de mot de passe peuvent voir le titre du message, mais ils peuvent également essayer de saisir des mots de passe. Comme nous le savons tous, les mots de passe peuvent être déchiffrés.
Cela dit, voyons comment masquer vos publications protégées par mot de passe dans la boucle WordPress afin que les autres utilisateurs ne puissent pas les voir.
Ajoutez simplement ce code au fichier function.php de votre thème ou à un plugin spécifique au site.
function wpb_password_post_filter( $where = '' ) { if (!is_single() && !is_admin()) { $where .= " AND post_password = ''"; } return $where; } add_filter( 'posts_where', 'wpb_password_post_filter' );
Ce code modifie simplement la requête envoyée à WordPress en utilisant le filtre posts_where
. Il demande à WordPress de récupérer toutes les publications qui n'ont pas de mot de passe.
Visitez votre site Web et vous verrez que les publications protégées par mot de passe ne sont plus visibles sur la page d'accueil, dans les archives ou dans les widgets comme les publications récentes.
Vous pouvez toujours visiter la publication en y accédant via une URL directe vers la publication elle-même.
L'exemple ci-dessus masque les publications protégées par mot de passe à tous les utilisateurs. Et si vous exploitiez un site WordPress multi-auteurs et souhaitiez que les publications protégées soient visibles par les utilisateurs ayant la possibilité de modifier des publications privées ?
Modifiez simplement le code ci-dessus avec une autre balise conditionnelle, comme ceci :
function wpb_password_post_filter( $where = '' ) { if (!is_single() && !current_user_can('edit_private_posts') && !is_admin()) { $where .= " AND post_password = ''"; } return $where; } add_filter( 'posts_where', 'wpb_password_post_filter' );
Dans cet exemple, nous vérifions si un utilisateur ne peut pas modifier les publications protégées par mot de passe, puis affichons uniquement les publications qui n'ont pas de mot de passe. Ce faisant, tous les utilisateurs ayant les rôles d'administrateur et d'éditeur verront les publications protégées par mot de passe sur le front-end de votre site.
Nous espérons que cet article vous a aidé à masquer les publications protégées par mot de passe de la boucle WordPress sur votre site. Vous voudrez peut-être également consulter notre tutoriel sur la façon de modifier le préfixe des publications privées et protégées dans WordPress.
Si vous avez aimé cet article, abonnez-vous à notre chaîne YouTube pour les didacticiels vidéo WordPress. Vous pouvez également nous trouver sur Twitter et Google+.