web-dev-qa-db-fra.com

Que fait query_var dans register_taxonomy?

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 via WP_Query comme new WP_Query(array('people'=>$person_name)) et les requêtes d'URL comme /?people=$person_name. Si vous définissez query_var sur false, ces méthodes seront désactivées, mais vous pouvez toujours récupérer les publications avec une requête de taxonomie WP_Query explicite telle que WP_Query(array('taxonomy'=>'people', 'term'=>$person_name)).

Quelqu'un pourrait-il s'il vous plaît expliquer?

1
kanenas

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

4
Pieter Goosen