Dans un précédent tutoriel, nous avons essayé de vous initié à l’utilisation des API de WordPress pour faire des requêtes vers la base de données afin de récupérer du contenu.

Dans ce précédent tutoriel, nous avons envisagé les différentes fonctions :

  • WP_Query, qui est la classe incontournable en la matière
  • pre_get_posts, dont l’utilisation doit être limitée
  • query_posts, qui n’est plus recommandé.

Si vous souhaitez en savoir plus, je vous invite à jeter un coup sur le précédent tutoriel.

Maintenant, nous allons vous présentez des deux dernières fonctions qui vous permettront de récupérer du contenu sur la base de données il s’agit de :

  • get_posts()
  • get_pages()

1 – get_posts()

Considérez La fonction « get_posts() » fonction comme une instance modifiable prédéfini de la classe « WP_Query », car c’est exactement ce qu’il est. Lorsque vous utilisez « get_posts() » vous appelez effectivement les valeurs par défaut prédéfinies et les utiliser pour créer une instance de la classe « WP_Query ».

Dans un sens, « get_posts() » est un peu comme « query_posts() » : ils sont tous deux des instances prédéfinies « WP_Query ». Cependant, ils sont également tout à fait différent parce que «  query_posts() »remplace la valeur par défaut de l’objet « $query », alors que « get_posts() » simplement crée une toute nouvelle requête qui ne gêne pas les variables globales.

Alors, quand faut-il utiliser « get_posts() » ? Pourquoi ne pas simplement utiliser « WP_Query » ? La réponse est la commodité. Si vous envisagez d’utiliser, « get_posts() » vous pourrez certainement accomplir tout ce que vous essayez d’accomplir avec WP_Query. Cependant, en utilisant, get_posts() vous éviterez quelques frappes supplémentaires.

Il y a une autre différence entre « WP_Query » et « get_posts() ». C’est que celui-ci retourne un tableau d’articles alors que les premiers renvoi un article en même temps que la fonction « the_post() » est appelée. Cela signifie que « get_posts() » renvoie tous les articles à la fois comme un tableau tout en « WP_Query » parcourt les articles un par un écho sur le contenu pertinent de chaque article qu’il parcourt. En pratique, cela signifie que lors de l’utilisation que « get_posts() » vous utilisez une boucle « foreach » pour afficher les résultats, mais vous utilisez la norme structurelle « if…while » sur la boucle pour afficher du contenu.

L’autre chose à garder à l’esprit est que, puisque « get_posts() » ne modifie pas la valeur globale $query, vous devez utiliser « setup_postdata() » pour chaque poste pour avoir accès aux méthodes et propriétés de WP_Query. Bien que cela puisse sembler compliqué, ça ne l’est pas vraiment.

2 – get_pages()

Une fonction d’interrogation qui ne reçoit pas beaucoup d’attention est la « get_pages() ». Contrairement à toutes les autres requêtes dans ce tutoriel, sont tous en quelque sorte liés à WP_Query, get_pages() est une fonction qui contourne « WP_Query » et interroge directement la base de données.

Comme « get_posts() », cette fonction retourne le contenu qu’il localise dans un tableau. Cependant, à la différence avec « get_posts() », c’est qu’il peut être utilisé pour récupérer tous les articles de tout format de publication (messages, pages, format de publication personnalisé, et ainsi de suite), « get_pages() » ne peut être utilisé pour récupérer les types de contenu hiérarchiques tels que les pages et les formats de publication personnalisé hiérarchiques.

En outre, « get_pages() » vous permet de spécifier quelques paramètres de requête qui sont uniques à des formats de publication hiérarchiques , y compris « child_of », « parent » et « hierarchical ». L’accès à ces paramètres est la principale raison pour laquelle vous pouvez envisager d’utiliser cette requête particulière.

C’est tout pour ce tutoriel, nous avons désormais couvert tous les aspects pour faire des requêtes vers la base de données. N’oubliez pas que toutes les fonctions ne vous permettent pas nécessairement d’atteindre un même objectif, chacune peut être utilisée dans des circonstances précises.

Si vous avez des questions, n’hésitez pas à partager ce tutoriel avec vos amis sur WordPress.