Что делает запрос var в таксономии регистров


Что произойдет, если в

register_taxonomy( $taxonomy, $object_type, $args )

Я установил query_var аргумент в значение true?

Я прочитал здесь это

Query_var Запрос

( логический или строковый) (необязательно) False для отключения query_var, установите в качестве строки значение для использования пользовательского query_var вместо значения по умолчанию, которое равно $taxonomy, "имени" таксономии.

По умолчанию: $таксономия

Примечание: query_var используется для прямых запросов через WP_Query как new WP_Query(array('people'=>$person_name)) и URL-запросы, такие как /?people=$person_name. Установка query_var в значение false отключит эти методы, но вы все равно можете получать сообщения с явным запросом таксономии WP_Query, например WP_Query(array('taxonomy'=>'people', 'term'=>$person_name)).

Не мог бы кто-нибудь, пожалуйста, объяснить?

Author: Pieter Goosen, 2015-05-19

1 answers

Я не уверен, как объяснить это более подробно или лучше, чем это уже объяснено в кодексе, но вот несколько примечаний

  • IMHO, 'query_var' => true не добавляет должной ценности вашей таксономии или любой другой функциональности, связанной с вашей таксономией

  • Когда я читаю документы, устанавливая query_var в значение true, это позволяет запрашивать сообщения из заданного термина следующим образом

    $args = [
        '{tax}' => '{term-slug}'
    ];
    $q = new WP_Query( $args );
    

    Во-первых, этот синтаксис устаревает с версии 3.1 и заменяется с надлежащим tax_query который имеет гораздо больше преимуществ по сравнению с приведенным выше синтаксисом, таким как вложение, запрос сообщений с различными отношениями и включение и/или исключение определенных терминов и т. Д. и т. Д. Правильный синтаксис теперь

    $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 );
    

    Во-вторых, все преимущества синтаксиса tax_query, как вы можете видеть из вышесказанного. С версией 4.1 появилась сложная функция вложенности, которая позволяет создавать еще более сложные налоговые запросы

  • Наконец, если значение query_var равно true, то соответствующие переменные запроса, доступные для использования на страницах таксономии ( Я даже не уверен, что это так ), на самом деле это все еще бесполезно, так как к текущему запрашиваемому объекту можно получить доступ с помощью get_queried_object()

Итак, в заключение, на самом деле нет никакого преимущества query_var для true. Это чисто личный выбор, если вы хотите тратить время и пространство на его написание

 5
Author: Pieter Goosen, 2015-05-19 12:39:47