Jusqu'à présent, dans cette série, vous avez appris une sélection d'arguments que vous pouvez utiliser avec le WP_Query
classe, pour sélectionner les articles par type, catégorie, tag, métadonnées, date, statut et bien plus encore.
Dans ce dernier tutoriel sur WP_Query
arguments, je vais passer en revue certains paramètres moins fréquemment utilisés qui peuvent donner à vos requêtes encore plus de flexibilité.
Les paramètres que nous allons couvrir ici sont pour:
Avant de commencer, rappelons brièvement comment vous codez vos arguments avec WP_Query
.
Quand vous codez WP_Query
Dans vos thèmes ou plugins, vous devez inclure quatre éléments principaux:
En pratique, cela ressemblera à quelque chose comme ceci:
have_posts ()) // Commence à boucler sur les résultats de la requête. while ($ query-> have_posts ()) $ query-> the_post (); // Le contenu des résultats postés interrogés est disponible ici. // Restaure les données de publication d'origine. wp_reset_postdata (); ?>
Les arguments sont ce qui indique à WordPress quelles données extraire de la base de données et ce sont celles que je vais couvrir ici. Nous nous concentrons donc sur la première partie du code:
$ args = array (// Arguments pour votre requête.);
Comme vous pouvez le constater, les arguments sont contenus dans un tableau. Vous apprendrez à les coder au fil de ce didacticiel..
Il existe un moyen spécifique de coder les arguments du tableau, comme suit:
$ args = array ('paramètre1' => 'valeur', 'paramètre2' => 'valeur', 'paramètre3' => 'valeur');
Vous devez mettre les paramètres et leurs valeurs entre guillemets simples, utilisez =>
entre eux, et séparez-les avec une virgule. Si vous vous trompez, WordPress peut ne pas ajouter tous vos arguments à la requête ou vous pouvez obtenir un écran blanc..
Il existe quatre paramètres que vous pouvez utiliser pour interroger par auteur:
auteur
(int): utiliser l'identifiant de l'auteurnom de l'auteur
(chaîne): utilisez 'user_nicename' (NOT name)auteur__in
(tableau): utiliser l'identifiant de l'auteurauteur__not_in
(tableau)Le premier, auteur
, vous permet d'interroger les publications d'un ou de plusieurs auteurs en fournissant l'ID de l'auteur:
$ args = array ('author' => '2');
Le code ci-dessus interroge tous les messages de l'auteur dont l'identifiant est 2
.
Vous pouvez également utiliser une chaîne pour interroger les publications de plusieurs auteurs:
$ args = array ('author' => '1, 2');
Si vous voulez interroger par nom, vous utiliserez le nom de l'auteur
paramètre:
$ args = array ('author_name' => 'rachelmccollin');
Ce paramètre prend la valeur de la user_nicename
champ de la base de données en tant qu'argument, qui s'affiche sous le pseudonyme dans l'écran d'administrateur des utilisateurs:
Notez que ceci étant modifiable par les utilisateurs, vous serez plus sûr d’utiliser le auteur
paramètre si vous pensez que vos utilisateurs pourraient le changer.
Vous pouvez également rechercher les publications d'un tableau d'auteurs:
$ args = array ('author__in' => array ('1', '2'));
Ce qui précède interrogera les auteurs de deux articles: ceux qui ont un identifiant. 1
et 2
, vous donnant les mêmes résultats que la chaîne que j'ai utilisée avec le auteur
paramètre ci-dessus.
Enfin, vous pouvez exclure les publications d’un ou plusieurs auteurs à l’aide de la touche auteur__not_in
paramètre. L'argument ci-dessous pour toutes les publications sauf celles de l'auteur 1
:
$ args = array ('author__not_in' => array ('1'));
Ou vous pouvez exclure plusieurs auteurs:
$ args = array ('author__not_in' => array ('1', '2'));
Sinon, vous pouvez utiliser le auteur
paramètre et utilisez un signe moins devant l'ID de l'auteur pour exclure un auteur:
$ args = array ('author' => '-2');
Il y a juste un paramètre pour la recherche, qui est s
. Utilisez-le pour rechercher des publications qui correspondent à un terme de recherche. Ainsi, par exemple, pour rechercher des publications contenant les mots clés "mon aliment préféré", vous utiliseriez ceci:
$ args = array ('s' => 'mon plat préféré');
Vous trouverez peut-être cela utile pour rechercher des publications associées avec des mots clés similaires, par exemple.
Vous pouvez utiliser les deux paramètres de mot de passe pour interroger les publications avec et sans protection par mot de passe:
has_password
(bool)post_password
(chaîne)Le premier paramètre, has_password
, vous permet de rechercher des publications avec ou sans protection par mot de passe. Donc, pour rechercher des publications protégées par mot de passe:
$ args = array ('has_password' => true);
Et pour les publications qui n'ont pas de mots de passe:
$ args = array ('has_password' => false);
Vous pouvez également interroger par le mot de passe lui-même, en utilisant le post_password
paramètre:
$ args = array ('post_password' => 'mypassword');
Un seul paramètre est disponible pour les autorisations., permanente
, que vous utilisez pour interroger les publications que l’utilisateur actuel est autorisé à lire. Il prend la 'lisible'
valeur et est conçu pour être combiné avec d'autres arguments.
Donc, pour interroger les publications protégées par mot de passe et les afficher uniquement si l'utilisateur dispose des autorisations appropriées, utilisez ceci:
$ args = array ('has_password' => true, 'perm' => 'lisible');
Ou pour afficher les brouillons si l'utilisateur actuel a la permission de les voir, utilisez ceci:
$ args = array ('post_status' => 'brouillon', 'perm' => 'lisible');
Il existe trois paramètres de mise en cache, qui empêchent l'ajout au cache des données extraites par la requête:
cache_results
(booléen): cache d'informations postupdate_post_meta_cache
(booléen): cache de méta-informationsupdate_post_term_cache
(booléen): cache d'informations post-termeLa valeur par défaut des trois est vrai
: vous n'avez pas besoin de les utiliser si vous souhaitez que les données soient ajoutées au cache.
Donc, pour afficher tous les messages de la produit
poste tapez mais pas ajouter des informations de poste dans le cache, vous utiliseriez ceci:
$ args = array ('post_type' => 'product', 'cache_results' => false);
Normalement, vous ne devriez pas utiliser ces paramètres, car il est recommandé d’ajouter des données de publication au cache. Cependant, vous pouvez parfois souhaiter récupérer des publications afin que vous puissiez simplement utiliser certaines données de publication, auquel cas vous n'avez pas besoin du reste des données de publication dans le cache. Un exemple pourrait être lorsque vous souhaitez simplement générer une liste de titres d'articles avec des liens, auquel cas vous n'avez pas besoin que les données ou les métadonnées de post-terme soient ajoutées au cache:
$ args = array ('post_type' => 'product', 'update_post_meta_cache' => false, 'update_post_term_cache' => false);
Vous pouvez utiliser le des champs
paramètre pour spécifier les champs à renvoyer de votre requête. Cela permet d’enregistrer les données de retour des champs de la base de données inutiles lors de la sortie des données dans votre boucle..
La valeur par défaut est de retourner tous les champs, mais vous avez deux options avec des champs
paramètre pour limiter cela. Premièrement le 'ids'
argument:
$ args = array ('fields' => 'ids');
Cela renverrait simplement un tableau d'identifiants de publication et aucun autre champ. Si vous voulez sortir quelque chose dans votre boucle (comme le titre du post), vous devrez alors utiliser des fonctions telles que get_the_title ($ post-> ID);
pour sortir le titre, ce qui serait une longue façon de faire les choses.
L'autre argument que vous pouvez utiliser récupère un tableau associatif d'ID de publication avec des ID de publication enfants:
$ args = array ('fields' => 'id => parent');
Vous l'utiliserez pour rechercher des publications en fonction de vos autres arguments et de leurs enfants..
Cette partie de la série sur WP_Query
introduit le dernier ensemble de paramètres pour la WP_Query
classe. Vous pouvez les utiliser pour interroger des publications par auteur, par statut protégé par mot de passe ou par le mot de passe lui-même et les termes de recherche, et pour définir si les résultats de la requête sont ajoutés au cache et quels champs sont renvoyés par la requête..
Dans la suite de cette série, vous verrez quelques exemples concrets d’utilisation de WP_Query
dans vos thèmes ou plugins.