QUERY_var在REGISTER_TASTIONY中有什么作用

时间:2015-05-19 作者:kanenas

如果在

register_taxonomy( $taxonomy, $object_type, $args )
我设置query_var 争论是否属实?

我读过here

query_var

(布尔值或字符串)(可选)False要禁用query\\u var,请设置为string以使用自定义query\\u var,而不是默认值$taxonomy,即分类法的“名称”。

默认值:$分类法

Note: 这个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 个回复
最合适的回答,由SO网友:Pieter Goosen 整理而成

我不知道如何更详细地解释这一点,或者说比法典中已经解释的更好,但这里有一些注释

我知道,\'query_var\' => true 没有为分类法或与分类法相关的任何其他功能添加适当的值

阅读文档时,设置query_var 为了实现这一点,可以从给定的术语中查询帖子,如下所示

$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_vartrue. 如果你想浪费时间和空间写出来,这纯粹是个人的选择

结束

相关推荐