wordpress — упорядочить запрос по типу & quot; не работает?

я пытаюсь запросить список в определенном порядке типов записей, но это не работает.

$args = array(
'post_type' => array('a','b', 'c', 'd', 'e'),
'tax_query' => array(
array(
'taxonomy' => 'category',
'field' => 'slug',
'terms' =>  ''.$term_list.''
),
),
'orderby' => 'type'

);

в чем дело? он отлично работает с ‘rand’ и другой строкой запроса, но ‘type’ кажется недостаточно!

Спасибо!

1

Решение

Единственный способ получить эту работу — отфильтровать pre_get_posts. Я не копался в ядре, чтобы реально увидеть, что устанавливается, но фильтр работает.

function my_search_filter( $query ) {

if( $query->is_search() ) {
$query->set( 'post_type', array('post', 'page','case-study','office', 'career', 'event') );
$query->set( 'orderby', 'type');
}
}
add_filter( 'pre_get_posts', 'my_search_filter' );
0

Другие решения

Похоже, это один вид пользовательского типа сообщения. Вы могли бы сделать что-то вроде этого:

function my_single_filter( $query ) {

if( $query->is_singular('custom_post_type_slug') ) {
$query->set( 'post_type', array('a','b','c','d','e') );
$query->set( 'orderby', array(
array( 'taxonomy' => 'category',
'field' => 'slug',
'terms' => ''.$term_list.'' ),
));
$query->set( 'orderby', 'type');
}
}
add_filter( 'pre_get_posts', 'my_single_filter' );

Это будет в вашем файле functions.php. Вам нужно будет получить данные через functions.php для переменной $ term_list. В вашем файле single.php вы можете разместить цикл по умолчанию.

0

По вопросам рекламы [email protected]