GET_QUERY_var返回错误的默认值

时间:2017-02-26 作者:Ronon

我想让我的自定义术语按用户排序。我创建了不同的链接,让用户决定如何对其进行排序。

<a href="?orderby=name&order=asc" data-target="#">Name ascending</a>
<a href="?orderby=name&order=desc" data-target="#">Name descending</a>

<?php
$orderby = get_query_var(\'orderby\', \'name\');
$order = get_query_var(\'order\', \'ASC\');

echo $orderby . " : " . $order;  
$args = [
    \'number\' => $tpp, // Amount of terms to return
    \'offset\' => $offset, // The amount to offset the list by for pagination
    \'orderby\' => $orderby,
    \'order\' => $order
 ];
 $actors = get_terms( \'myTaxonomy\', $args );
如果设置了查询变量,它将正常工作。但是如果没有提供查询变量,我总是得到DESC.

作为的默认值$order 虽然我定义了ASC 默认情况下<我错过了什么?

1 个回复
最合适的回答,由SO网友:birgire 整理而成

的默认值get_query_var( $var, $default ) 仅当查询变量$var 在全球范围内不可用$wp_query 对象

这个order 查询变量实际上返回到DESC 价值here:

if ( ! isset( $q[\'order\'] ) ) {
    $q[\'order\'] = $rand ? \'\' : \'DESC\';
} ...
WP_Query::get_posts(), 这就是为什么使用它而不是默认值。

在将本机公共查询变量应用于辅助查询时要小心,因为它们还可以更改主查询结果。

相关推荐

Get_Terms()Order by Term_Meta

我正在做一个get_terms() 我试图按自定义术语元排序的查询。自定义术语元键是\'order\' 它是一个数值(介于1和10之间)。我尝试了以下方法,但顺序似乎没有遵循元值-任何指针都是值得赞赏的。$type_terms = get_terms( \'type\', array( \'hide_empty\' => false, array( \'key\' => \'order\', ), \'or