Exclure les contenus protégés par mot de passe de la boucle de WordPress

La boucle de WordPress inclut par défaut les contenus protégés par mot de passe. Pour des raisons de confidentialité, il peut être nécessaire de masquer ces contenus en filtrant au préalable la boucle via le hook pre_get_posts. Ce dernier est appelé avant que la requête ne soit exécutée nous permettant ainsi de l'altérer en lui passant de nouveaux arguments.

Nous allons donc créer une nouvelle fonction que vous pourrez coller dans le fichier functions.php de votre thème. Le fait de placer ce bout de code directement dans le thème prend ici tout son sens étant donné que nous modifions l’affichage des boucles.

On commence par vérifier que nous ne sommes pas dans le back-office de WordPress et que nous modifions bien la boucle principale. Ensuite, on définit un nouvel argument has_password que l’on passera sur false. Les contenus avec mot de passe seront donc automatiquement exclus de toutes les boucles.

Si vous faites des requêtes Ajax, n’oubliez pas d’indiquer à nouveau ce paramètre dans vos requêtes personnalisées.

function wpc_exclude_protected_posts($query) {
	if (! is_admin() && $query->is_main_query()) {
		$query->set('has_password', false);
	}
}
add_action('pre_get_posts', 'wpc_exclude_protected_posts');

Pour en savoir plus sur pre_get_posts, je vous recommande l’excellent billet de Rémi Corson.

Peu usité, les contenus protégés par mot de passe n’en reste pas moins un cas possible qu’il nous faut traiter pour éviter qu’une information sensible ne soit révélée au public comme le titre ou l’extrait d’un article.

Laisser un commentaire

Thèmes & Plugins
Premium By WP Channel

WP Alacarte propose des produits et services de qualité
made in France pour la plateforme WordPress.

Tout est prêt pour créer votre site à la carte !

  • Thèmes et extensions premium
  • Facilité d’utilisation garantie
  • Temps de chargement optimisé
  • Personnalisation avancée
Découvrir

Rejoignez la communauté WordPress !

Faites partie de l’aventure en devenant membre d’une association WordPress. Conférences, ateliers, BarCamp, WordCamp… Venez
partager votre passion pour WordPress !

Aurélien DENIS,
président des associations WordPress Francophone et WPMX