Maison >Tutoriel CMS >WordPresse >Exploration de la fonction wordpress get_posts

Exploration de la fonction wordpress get_posts

Lisa Kudrow
Lisa Kudroworiginal
2025-02-17 10:17:43471parcourir

Exploration de la fonction wordpress get_posts

Les plats clés

  • La fonction get_posts () dans WordPress est utilisée pour récupérer les publications de la base de données en appliquant des filtres personnalisés et en tri le résultat final en fonction d'un ensemble de paramètres. Il renvoie un tableau d'objets WP_POST, chacun représentant un message individuel.
  • La fonction get_posts () est préférée à l'objet WP_Query car ce dernier modifie la boucle principale, provoquant potentiellement des problèmes de site. La fonction get_posts () et la fonction get_pages () récupèrent les articles, mais diffèrent en noms de paramètres, valeurs et méthodes de récupération.
  • La fonction get_posts () accepte un tableau de paramètres pour appliquer des filtres personnalisés et trier les résultats. Ces paramètres incluent Posts_per_page, Paged, Tax_Query, OrderBy, Order, Exclude, Meta_key, Meta_Value, Post_Type et Post_Status.
  • La fonction get_posts () peut être utilisée pour récupérer les publications les plus populaires, les publications aléatoires, les publications avec Meta Key et la valeur correspondantes, et les articles d'un type de publication personnalisé avec un nom de taxonomie personnalisé. Les résultats retournés sont ensuite en boucle pour une utilisation ultérieure.

De nombreux plugins WordPress récupèrent les publications de la base de données en personnalisant l'ordre de tri, en récupérant des publications en fonction d'une méta-clé ou d'une taxonomie spécifique. Vous êtes-vous déjà demandé comment ces plugins récupèrent des listes de messages personnalisés sans écrire de requêtes SQL? Dans ce tutoriel, nous apprendrons à faire exactement cela.

Exploration de la fonction wordpress get_posts

Dans cet article, nous explorerons la fonction get_posts () avec quelques exemples de la façon de l'utiliser dans vos propres projets. Nous couvrirons également certains cas d'utilisation typiques pour cette fonction et en quoi il est différent de la fonction WP_Query et Get_Pages.

Quelle est la fonction get_posts ()?

La fonction get_posts est disponible dans WordPress Core depuis WordPress 1.2.0. Cette fonction est essentiellement utilisée pour récupérer les publications de la base de données en appliquant des filtres personnalisés et en triant le résultat final en fonction d'un ensemble de paramètres.

La fonction get_posts () renvoie un tableau d'objets WP_POST. Chaque objet WP_POST représente un message individuel.

Get_Posts en interne utilise l'objet WP_Query pour construire et exécuter les requêtes SQL en fonction de l'ensemble passé de paramètres.

Remarque: les messages signifient la publication, la page et le type de publication personnalisé.

Pourquoi ne pas utiliser directement l'objet WP_Query?

Les plugins utilisent la fonction GET_POSTS au lieu de l'objet WP_Query car l'utilisation de l'objet WP_Query modifie directement la boucle principale (c'est-à-dire la variable globale $ wp_query) qui entraînerait des problèmes de site.

Quelle est la différence entre les fonctions get_posts () et get_pages ()?

Les deux sont utilisés pour récupérer les publications de la base de données WordPress, cependant, voici quelques-unes des différences entre elles:

  • Plusieurs des noms et valeurs de paramètres diffèrent entre eux. Bien qu'ils se comportent de la même manière quel que soit les noms des paramètres.
  • La fonction get_pages () ne récupère actuellement pas les publications basées sur les paramètres meta_key et meta_value.
  • La fonction get_pages () n'utilise pas l'objet WP_Query. Au lieu de cela, il construit et exécute directement les requêtes SQL.

get_posts () Paramètres de fonction

La fonction get_posts ne prend qu'un seul argument en tant que tableau. Le tableau contient les différents paramètres pour appliquer des filtres personnalisés et trier le résultat.

Voici un exemple de code qui montre comment appeler cette fonction et les différents paramètres disponibles:

<span><span><?php 
</span></span><span>
</span><span><span>$args = array(
</span></span><span>	<span>"posts_per_page"   => 5,
</span></span><span>	<span>"paged"            => 1
</span></span><span>	<span>"tax_query" => array(
</span></span><span>		<span>array(
</span></span><span>			<span>"taxonomy" => "category",
</span></span><span>			<span>"field"    => "slug",
</span></span><span>			<span>"terms"    => "videos,movies",
</span></span><span>		<span>)
</span></span><span>	<span>),
</span></span><span>	<span>"orderby"          => "post_date",
</span></span><span>	<span>"order"            => "DESC",
</span></span><span>	<span>"exclude"          => "1123, 4456",
</span></span><span>	<span>"meta_key"         => "",
</span></span><span>	<span>"meta_value"       => "",
</span></span><span>	<span>"post_type"        => "post",
</span></span><span>	<span>"post_status"      => "publish"
</span></span><span><span>);
</span></span><span>
</span><span><span>$posts_array = get_posts($args); 
</span></span><span>
</span><span><span>?></span></span>

Il y a plus de paramètres disponibles, mais ce sont les plus couramment utilisés. Regardons chacun de ces paramètres:

  1. Posts_per_page: ce paramètre définit le nombre de messages à retourner. Utilisez -1 si vous voulez tous les messages.
  2. PAGED: nous permet de naviguer entre un ensemble de messages lors de l'utilisation du paramètre POST_PER_PAGE. Il est utilisé pour la pagination. Par exemple: Supposons que Posts_per_Page soit 10 et qu'il y a 20 messages dans le résultat, alors si vous attribuez Paged à 2, alors les 10 derniers messages sont retournés.
  3. tax_query: afficher les publications d'une limace de taxonomie particulière, c'est-à-dire, filtrez les postes de l'autre limace de taxonomie. Les termes peuvent prendre une chaîne séparée par des virgules représentant plusieurs limaces de taxonomie.
  4. OrderBy: il est utilisé pour trier les messages récupérés. Certaines valeurs possibles sont: «Aucun», «Date», «Rand», «comment_count», «meta_value», «meta_value_num» etc. Tout en triant en utilisant «meta_value» et «meta_value_num», vous devez fournir le paramètre meta_key.
  5. Ordre: désigne l'ordre ascendant ou décroissant du paramètre OrderBy. Les valeurs possibles sont «desc» ou «ASC».
  6. Exclure: il faut une liste séparée par des virgules des ID de poste qui sera exclue d'une recherche de base de données.
  7. meta_key et meta_value: si vous ne fournissez que meta_key, les publications qui ont la clé seront retournées. Si vous fournissez également meta_value, les poteaux correspondant à la méta_value pour le meta_key sont retournés.
  8. post_type: récupère le contenu basé sur la publication, la page ou le type de publication personnalisé. N'oubliez pas que le post_type par défaut n'est défini que pour afficher les publications mais pas les pages.
  9. post_status: récupère les publications par statut du message. Les valeurs possibles sont: «publier», «en attente», «brouillon», «futur», «any» ou «poubelle».

L'objet WP_POST

La fonction get_posts renvoie un tableau contenant des objets WP_POST. Voici les propriétés importantes de l'objet WP_POST:

  1. ID: ID du post
  2. Post_author: Nom de l'auteur du post
  3. post_type: Type du post
  4. post_title: titre du post
  5. post_date: date à laquelle le message a été publié. Format: 0000-00-00 00:00:00
  6. post_content: Contenu du post.
  7. post_status: statut du post
  8. comment_count: nombre de commentaires pour le message

Exemples de get_posts

Voyons quelques exemples à l'aide de la fonction get_posts.

Articles les plus populaires

Si vous souhaitez afficher le numéro N supérieur des articles les plus discutés sur votre site, vous pouvez utiliser Get_Posts pour les récupérer. Voici un exemple:

<span><span><?php 
</span></span><span>
</span><span><span>$args = array(
</span></span><span>	<span>"posts_per_page"   => 5,
</span></span><span>	<span>"paged"            => 1
</span></span><span>	<span>"tax_query" => array(
</span></span><span>		<span>array(
</span></span><span>			<span>"taxonomy" => "category",
</span></span><span>			<span>"field"    => "slug",
</span></span><span>			<span>"terms"    => "videos,movies",
</span></span><span>		<span>)
</span></span><span>	<span>),
</span></span><span>	<span>"orderby"          => "post_date",
</span></span><span>	<span>"order"            => "DESC",
</span></span><span>	<span>"exclude"          => "1123, 4456",
</span></span><span>	<span>"meta_key"         => "",
</span></span><span>	<span>"meta_value"       => "",
</span></span><span>	<span>"post_type"        => "post",
</span></span><span>	<span>"post_status"      => "publish"
</span></span><span><span>);
</span></span><span>
</span><span><span>$posts_array = get_posts($args); 
</span></span><span>
</span><span><span>?></span></span>

Ici, nous utilisons le paramètre OrderBy pour trier les articles en fonction du nombre de commentaires, récupérant les 10 meilleurs messages.

Posts aléatoires

Vous pouvez également récupérer facilement des poteaux aléatoires. Cela est utile pour recommander aux utilisateurs un autre article sur votre site une fois qu'ils auront terminé la lecture de celui actuel. Voici le code pour ceci:

<span><span><?php
</span></span><span>	<span>$args = array("posts_per_page" => 10, "orderby" => "comment_count");
</span></span><span>	<span>$posts_array = get_posts($args);
</span></span><span>	<span>foreach($posts_array as $post)
</span></span><span>	<span>{
</span></span><span>	  <span>echo "<h1>" . $post->post_title . "</h1><br>";
</span></span><span>	  <span>echo "<p>" . $post->post_content . "</p><br>";
</span></span><span>	<span>} 
</span></span><span><span>?></span></span>

Dans l'exemple ci-dessus, nous avons passé la valeur Rand au paramètre Order_By.

Posts avec la clé et la valeur correspondantes

Nous pourrions vouloir récupérer tous les articles qui ont une clé de méta et une valeur particulières attribuées. Par exemple: certains blogs ont un critique pour chaque article. Nous pourrions vouloir récupérer des articles examinés par un critique particulier.

Voici le code pour faire exactement cela:

<span><span><?php
</span></span><span>  <span>$args = array("posts_per_page" => 1, "orderby" => "rand");
</span></span><span>  <span>$posts_array = get_posts($args);
</span></span><span>  <span>foreach($posts_array as $post)
</span></span><span>  <span>{
</span></span><span>    <span>echo "<h1>" . $post->post_title . "</h1><br>";
</span></span><span>    <span>echo "<p>" . $post->post_content . "</p><br>";
</span></span><span>  <span>} 
</span></span><span><span>?></span></span>

Ici, nous récupérons tous les articles examinés par "Narayanpruty". Nous supposons que le nom de l'examinateur est stocké via le «réviseur» de Meta Key pour chaque message.

Type de publication personnalisée avec taxonomie personnalisée

Nous voulons peut-être récupérer des publications d'un type de message personnalisé avec un nom de taxonomie personnalisé. Considérez cet exemple de code:

<span><span><?php
</span></span><span>  <span>$args = array("posts_per_page" => -1, "meta_key" => "reviewer", "meta_value" = "narayanprusty");
</span></span><span>  <span>$posts_array = get_posts($args);
</span></span><span>  <span>foreach($posts_array as $post)
</span></span><span>  <span>{
</span></span><span>    <span>echo "<h1>" . $post->post_title . "</h1><br>";
</span></span><span>    <span>echo "<p>" . $post->post_content . "</p><br>";
</span></span><span>  <span>} 
</span></span><span><span>?></span></span>

Dans cet exemple, nous récupérons les publications d'un type de message personnalisé nommé «coupons» qui appartiennent aux «plugins» et «thèmes» des taxonomies personnalisées.

Conclusion

Dans cet article, nous avons vu comment fonctionne la fonction GET_POSTS, les différents paramètres qu'il prend en charge, en boucle via le résultat retourné et certains exemples de cas d'utilisation. La fonction get_posts est l'une des fonctions WordPress les plus utilisées, j'espère que vous pourrez maintenant commencer à l'utiliser vos propres projets.

Questions fréquemment posées (FAQ) sur la fonction WordPress get_posts

Quelle est la différence entre Get_Posts et WP_Query dans WordPress?

Les Get_posts et WP_Query sont utilisés pour récupérer les publications de votre base de données WordPress. Cependant, ils diffèrent dans leur utilisation et leur flexibilité. Get_Posts est une fonction plus simple, idéale pour les débutants et pour les situations où vous n'avez besoin que de récupérer un ensemble spécifique de messages. D'un autre côté, WP_Query est plus puissant et plus flexible. Il permet des requêtes plus complexes et vous donne plus de contrôle sur la boucle WordPress. Bien que Get_Posts soit plus facile à utiliser, WP_Query fournit des fonctionnalités plus avancées pour personnaliser vos requêtes.

Comment puis-je modifier le nombre de messages renvoyés par get_posts?

Vous pouvez contrôler le nombre de messages renvoyés par get_posts en utilisant le paramètre «NumberPosts». Par défaut, il est défini sur 5. Si vous souhaitez récupérer tous les messages, vous pouvez définir des «postes de nombres» sur -1. Par exemple, pour obtenir 10 messages, vous utiliseriez: get_posts (array ('numberposts' => 10));

puis-je utiliser get_posts pour récupérer Peut utiliser Get_Posts pour récupérer les types de publiques personnalisées. Il vous suffit de spécifier le paramètre «post_type» dans votre requête. Par exemple, si vous avez un type de message personnalisé appelé 'Products', vous pouvez récupérer ces messages avec: get_posts (array ('post_type' => 'products'));

comment puis-je trier les messages renvoyés par get_posts?

Vous pouvez trier les messages renvoyés par get_posts en utilisant les paramètres «OrderBy» et «Order». «OrderBy» détermine le champ à trier, et «Order» détermine l'ordre de tri (ASC pour l'ascendant et la descendant pour les descendants). Par exemple, pour trier les publications par titre dans l'ordre croissant, vous utiliseriez: get_posts (array ('orderby' => 'title', 'ordonnance' => 'asc'));

puis-je utiliser get_posts Pour récupérer des publications à partir d'une catégorie spécifique?

Oui, vous pouvez utiliser Get_Posts pour récupérer des publications à partir d'une catégorie spécifique. Il vous suffit de spécifier le paramètre «catégorie» dans votre requête. Par exemple, pour obtenir des articles de la catégorie avec l'ID 3, vous utiliseriez: get_posts (array ('catégorie' => 3));

comment puis-je récupérer les publications de plusieurs catégories à l'aide de get_posts?

Pour récupérer les publications de plusieurs catégories, vous pouvez passer un tableau d'ID de catégorie au paramètre «catégorie». Par exemple, pour obtenir des articles des catégories avec les IDS 3 et 4, vous utiliseriez: get_posts (array ('catégorie' => array (3, 4)));

puis-je utiliser get_posts pour récupérer Messages par un auteur spécifique?

Oui, vous pouvez utiliser Get_Posts pour récupérer les publications par un auteur spécifique. Il vous suffit de spécifier le paramètre «auteur» dans votre requête. Par exemple, pour obtenir des messages par l'auteur avec l'ID 1, vous utiliseriez: get_posts (array ('auteur' => 1));

comment puis-je récupérer les publications qui contiennent une méta-valeur spécifique à l'aide de get_posts ?

Pour récupérer des publications contenant une méta-valeur spécifique, vous pouvez utiliser les paramètres 'meta_key' et 'meta_value'. Par exemple, pour obtenir des articles qui ont une méta-clé de «couleur» et une méta-valeur de «bleu», vous utiliseriez: get_posts (array («meta_key» => «couleur», «meta_value» => «bleu») . Il vous suffit de spécifier le paramètre «tag» dans votre requête. Par exemple, pour obtenir des articles qui ont la balise «wordpress», vous utiliseriez: get_posts (array («tag» => «wordpress»));

Comment puis-je récupérer les publications à partir d'une plage de dates spécifique à l'aide de get_posts?

Pour récupérer les publications à partir d'une plage de dates spécifique, vous pouvez utiliser le paramètre "Date_Query". Ce paramètre accepte un tableau de tableaux, chaque tableau intérieur définissant une clause de requête de date. Par exemple, pour obtenir des publications à partir de janvier 2020, vous utiliseriez: get_posts (array (‘date_query’ => array (array (‘Year’ => 2020, ‘mois’ => 1))));

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn