Parfois, une page doit afficher des informations contenues dans d'autres posts. Par exemple, une page intitulée Projets pourrait contenir un texte de présentation suivi d'onglets cliquables montrant un aperçu des projets réalisés. Voir un exemple ici.
Idéalement, chaque projet aurait sa propre page avec ses propres informations et lorsqu'un projet serait ajouté ou modifié, celui se mettrait à jours automatiquement sur la page Projets sans qu'il ne soit nécessaire d'effectuer d'autres manipulations.
Pour récupérer des posts, il faut effectuer une nouvelle requête à WordPress via la fonction WP_Query et stocker son résultat dans une variable.
Par exemple, pour obtenir tous les posts de type project et les stockers dans une variable $projects, il est possible de faire:
À partir de cette variable, il est possible d'effectuer une boucle sur les projets retournés et d'accéder au contenu du projet courant comme si nous étions sur cette page directement, tant que le code est inscrit à l'intérieur de la boucle while.
Par exemple, si le titre de la page actuelle est Projets et que trois posts de type project sont créés avec pour titre respectif: Apollo, Barracuda et Canari.
La fonction the_title() retournera le titre du post courant soit Projets si elle est utilisée à l'extérieur de la boucle ou le titre de chacun des projets si elle est utilisée à l'intérieur de la boucle.
Par exemple:
Contrôler plus précisément la requêtes faite à WordPress est parfois nécessaire. Par exemple, spécifier le nombre d'éléments à afficher, le critère de trie (nom, date), leur ordre (croissant ⬇ décroissant ⬆️), etc.
Heureusement, il est possible de spécifier le résultat attendu à WordPress en lui passant un tableau (array) d'arguments plutôt qu'une chaine de caractères comme dans les précédents exemples.
Par exemple, si pour obtenir les posts de type project, mais spécifier que trois éléments seulement doivent-être retourné, il est possible de faire: