Что делает запрос 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))
.
Не мог бы кто-нибудь, пожалуйста, объяснить?
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
. Это чисто личный выбор, если вы хотите тратить время и пространство на его написание