Maîtriser WP_Meta_Query & WP_Date_Query

Bienvenue dans la dernière partie de la série. En fait, la dernière partie sera techniquement "Series Finale", mais vous avez l’idée. Dans cette partie, vous allez en apprendre davantage sur deux cours de frères et sœurs appelés WP_Meta_Query et WP_Date_Query.

Sans plus tarder, commençons!

Utilisation de toutes les métadonnées à travers la classe WP_Meta_Query

le WP_Meta_Query classe est une "classe d'assistance", aidant WP_Query faire des requêtes avec métadonnées.

Comme vous le savez, WordPress stocke trois types de métadonnées dans la base de données: méta-post, méta-utilisateur et méta-commentaire. Nous avons vu dans les didacticiels précédents que nous pouvons exécuter des méta-requêtes dans les requêtes que nous effectuons avec le WP_Query, WP_User_Query et WP_Comment_Query cours (avec le 'meta_query' paramètre). le WP_Meta_Query est en cours d'exécution lorsque vous faites ces requêtes.

Il s'avère que vous pouvez obtenir les instructions SQL pour ces requêtes liées à la méta à l'aide de l'outil WP_Meta_Query classe. Cette classe n'obtient pas vraiment les résultats de la requête donnée, mais prépare les commandes SQL pour que vous les utilisiez ailleurs.

Exemple d'utilisation de la classe WP_Meta_Query

Nous ne pouvons pas dire que c'est un tutoriel si nous ne faisons pas d'exemple, non? Avec un exemple simple, nous allons voir comment nous pouvons utiliser le WP_Meta_Query classe dans la vraie vie. (Certes, obtenir le code SQL d'une requête liée à une méta-relation est une tâche extrêmement spécifique, mais je vais essayer de vous donner un exemple concret.)

Imaginons que vous souhaitiez créer un "plug-in de messages liés" spécial pour votre propre site Web, dans lequel vous listerez les messages qui ont la même méta-valeur pour une méta-clé.-ou une autre méta-valeur pour une autre méta-clé. Et au lieu de faire une méta-requête dans un WP_Query Par exemple, vous voulez obtenir le code SQL de la requête pour l’utiliser dynamiquement dans des blocs de code distincts. Voici les étapes pour préparer ce code SQL:

 'OR', array ('meta_key' => 'Some_Key', 'meta_value' => 'Some_Value', 'compare' => '='), array ('meta_key' => 'Some_Other_Key', 'meta_value' => 'Some_Other_Value', 'compare' => '=')); $ my_meta_query = new WP_Meta_Query; $ my_meta_query-> parse_query_vars ($ my_meta_query_args); $ my_meta_query_sql = $ my_meta_query-> get_sql ('post', $ wpdb-> posts, 'ID'); ?>

Voilà: le $ my_meta_sql variable stocke le code SQL pour votre requête spéciale et vous pouvez l’utiliser n'importe où dans votre projet.

Interrogation des requêtes de date avec la classe WP_Date_Query

Juste comme WP_Meta_Query, la WP_Date_Query est une classe d'assistance pour le WP_Query, WP_User_Query et WP_Comment_Query Des classes. Cette classe d'assistance a été introduite dans WordPress version 3.7. À l'époque, la classe n'a pas soutenu WP_User_Query, mais depuis la version 4.1, vous pouvez interroger à l'intérieur de la table users (le utilisateur_enregistré colonne spécifiquement).

Semblable à WP_Meta_Query et sa capacité à interroger les clés méta et les valeurs, la WP_Date_Query class nous permet d'interroger les champs de date à l'intérieur des tables posts, commentaires et users. Et exactement comme WP_Meta_Query, cette classe d'assistance vous permet également de renvoyer le code SQL préparé pour exécuter une requête liée à la date.

Exemple d'utilisation de la classe WP_Date_Query

Afin de bien comprendre comment le WP_Date_Query La classe fonctionne, passons en exemple avec elle. Ce sera un autre exemple inutilement spécifique, mais il ne serait pas approprié de laisser cette partie sans exemple..

Imaginons que, pour une raison quelconque, nous devons interroger les commentaires formulés au cours du mois en cours et avant midi. (S'il vous plaît Envoie moi un commentaire si tu trouves un bon cas pour récupérer les commentaires du mois en cours et avant midi!) Voici comment obtenir le code SQL pour cette requête bizarre:

 date ('n'),), tableau ('avant' => 'midi'), 'relation' => 'AND'); $ my_date_query = new WP_Date_Query ($ my_date_query_args, 'comment_date'); $ my_date_query_sql = $ my_date_query-> get_sql (); ?>

Voilà. N'oubliez pas que vous pouvez utiliser les formats de date relative PHP, qui sont vraiment utiles..

Petit conseil: Christian Bruckner a un excellent post sur MarketPress.com à propos de comment WP_Date_Query travaux. C'est un peu désuet (car il a été écrit avant la sortie de WordPress 4.1) mais c'est très bien écrit et reste une bonne lecture. Assurez-vous de vérifier.

Tout emballer

Avec ces deux classes d’aide, nous mettons fin au long voyage de la dissection du WP_Query classe. C’était l’une des plus longues séries de tutoriels de l’histoire de Tuts +, alors merci de l’avoir suivi jusqu’à la fin! Dans la dernière (et dernière) partie, nous allons récapituler ce que nous avons vécu pour la dernière fois et clore la série..

Avez-vous quelque chose à ajouter à cet article? Si oui, n'hésitez pas à partager vos pensées dans la section Commentaires ci-dessous. Et si vous avez aimé l'article, n'oubliez pas de le partager avec vos amis!