我想让我的自定义术语按用户排序。我创建了不同的链接,让用户决定如何对其进行排序。
<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
默认情况下<我错过了什么?
最合适的回答,由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()
, 这就是为什么使用它而不是默认值。
在将本机公共查询变量应用于辅助查询时要小心,因为它们还可以更改主查询结果。