pre_get_posts
WordPress 🟡 MidDéfinition
Hook filter qui permet de modifier la requête principale de WordPress AVANT son exécution. Le moyen le plus performant de personnaliser les listings.
Analogie
Comme modifier la commande au restaurant avant qu'elle parte en cuisine, plutôt que de renvoyer le plat.
Exemple de code
add_action('pre_get_posts', function(WP_Query $query) {
if (!is_admin() && $query->is_main_query()) {
if ($query->is_home()) {
$query->set('posts_per_page', 6);
$query->set('post_type', ['post', 'tutorial']);
}
}
});
Cas d'usage
Pour modifier le nombre de posts, le tri, les types affiches sur les pages d'archive et la home.
Anti-pattern
Utiliser query_posts() ou créer un nouveau WP_Query quand pre_get_posts suffit.