Maison >Tutoriel CMS >WordPresse >Exploration de la fonction wordpress get_posts
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.
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.
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é.
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.
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:
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:
La fonction get_posts renvoie un tableau contenant des objets WP_POST. Voici les propriétés importantes de l'objet WP_POST:
Voyons quelques exemples à l'aide de la fonction get_posts.
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.
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.
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.
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.
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.
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.
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));
comment puis-je trier les messages renvoyés par get_posts?
puis-je utiliser get_posts Pour récupérer des publications à partir d'une catégorie spécifique?
comment puis-je récupérer les publications de plusieurs catégories à l'aide de get_posts?
puis-je utiliser get_posts pour récupérer Messages par un auteur spécifique?
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 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!