pre_get_posts
WordPress 🟡 MidDefinition
Hook filter qui permet de modifier la requete principale de WordPress AVANT son execution. Le moyen le plus performant de personnaliser les listings.
Analogie
Comme modifier la commande au restaurant avant qu'elle parte en cuisine, plutot 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 creer un nouveau WP_Query quand pre_get_posts suffit.