Qu'est-ce qui se passe si dans
register_taxonomy( $taxonomy, $object_type, $args )
J'ai mis query_var
argument à true?
Je lis ici ceci
query_var
(boolean ou chaîne) (facultatif) False pour désactiver la variable query_var, définie en tant que chaîne pour utiliser une variable requête_var personnalisée au lieu de la valeur par défaut qui est $ taxonomy, le "nom" de la taxonomie.
Par défaut: $ taxonomy
Remarque:Le
query_var
est utilisé pour les requêtes directes viaWP_Query
commenew WP_Query(array('people'=>$person_name))
et les requêtes d'URL comme/?people=$person_name
. Si vous définissezquery_var
sur false, ces méthodes seront désactivées, mais vous pouvez toujours récupérer les publications avec une requête de taxonomieWP_Query
explicite telle queWP_Query(array('taxonomy'=>'people', 'term'=>$person_name))
.
Quelqu'un pourrait-il s'il vous plaît expliquer?
Je ne sais pas comment expliquer cela plus en détail, ou mieux que ce qui a déjà été expliqué dans le codex, mais voici quelques notes
IMHO, 'query_var' => true
n'ajoute aucune valeur propre à votre taxonomie ni à aucune autre fonctionnalité liée à votre taxonomie
Lorsque je lis la documentation, en définissant query_var
sur true, il est possible d'interroger les publications d'un terme donné comme suit:
$args = [
'{tax}' => '{term-slug}'
];
$q = new WP_Query( $args );
Tout d’abord, cette syntaxe est dépréciée à partir de la version 3.1 et est remplacée par un tax_query
qui présente bien plus d’avantages que la syntaxe précédente, comme imbriquer, interroger des publications avec des relations différentes et inclure et/ou exclure certains termes, etc. La syntaxe appropriée est maintenant
$args = [
'tax_query' = [
'relation' => 'AND' // or 'OR' . RELATIONSHIP BETWEEN TWO OR MORE SETS OF TAX ARRAYS
[
'taxonomy' => '{tax}',
'field' => 'CAN BE term_id TO PASS TERM IDS, slug FOR TERM SLUGS OR name FOR TERM NAMES',
'terms' => 'TERM VALUES ACCORDING TO field SET',
'include_children' => true OR false, // true INCLUDES ALL CHILD TERMS OF GIVEN TERM, false EXCLUDES CHILD TERMS
'operator' => 'IN' // or 'NOT IN'. SHOULD POSTS BE IN THE GIVEN TERM OR NOT
],
],
];
$q = new WP_Query( $args );
Deuxièmement, tous les avantages de la syntaxe tax_query
, comme vous pouvez le constater ci-dessus. Avec la version 4.1, une fonctionnalité d'imbrication complexe est apparue qui vous permet de créer des requêtes fiscales encore plus complexes.
Enfin, si définir query_var
sur true permet d'utiliser les variables de requête appropriées sur les pages de taxonomie ( je ne sais même pas si ), il est en fait toujours inutile, car l'objet interrogé actuel est accessible. avec get_queried_object()
Donc, pour conclure, il n’ya vraiment aucun avantage à placer query_var
à true
. C'est un choix purement personnel si vous voulez perdre du temps et de l'espace à l'écrire