pre_get_posts

WordPress 🟡 Mid

Dé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.
#core#interview#wordpress#performance

← → au clavier pour passer d'une fiche à l'autre