Intereting Posts

get_query_var возвращает неправильное значение по умолчанию

Я хочу, чтобы пользовательские условия сортировались пользователями. Я создал разные ссылки, чтобы позволить пользователю решить, как они хотят его сортировать.

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

Он корректно работает, если заданы vars запросов. Но если запрос var не предоставляется, я всегда получаю DESC .

Как значение по умолчанию для $order хотя я определил ASC как значение по умолчанию.
Что мне не хватает?

Значение по умолчанию get_query_var( $var, $default ) возвращается только в том случае, если переменная запроса $var недоступна в глобальном объекте $wp_query .

Переменная запроса order фактически возвращается к значению DESC здесь :

 if ( ! isset( $q['order'] ) ) { $q['order'] = $rand ? '' : 'DESC'; } ... 

в WP_Query::get_posts() , поэтому он используется вместо значения по умолчанию.

Будьте внимательны при применении собственных переменных общедоступных запросов к вторичным запросам, поскольку они также могут изменить основной результат запроса.