Добрый день.
Возник вопрос. Существует такая конструкция для вывода постов в пользовательской таксономии:
$args = array(
'post_type' => 'my-custom-type',
'meta_query' => array(
'relation' => 'AND',
array(
'key' => 'ratings_users',
'type' => 'NUMERIC',
),
array(
'key' => 'ratings_average',
'type' => 'NUMERIC',
),
array(
'key' => 'views',
'type' => 'NUMERIC',
),
),
'orderby' => 'meta_value_num',
'order' => 'DESC',
);
$query = new WP_Query(
array_merge(
$args,
$wp_query->query
)
)
Задача сделать сортировку по произвольным полям следующим образом:
1) первыми идут посты с наивысшем значением поля "ratings_users";
2) если значения "ratings_users" одинаковые, то первыми идут посты с наивысшим значением поля "ratings_average";
3) если значения обоих полей одинаковые или же нулевые, то сортировка идёт по наивысшему значению поля "views".
В данном примере действует только сортировка по "ratings_users", как первым значением в массиве. Остальные на сортировку не влияют.
Как можно модифицировать функцию или какие есть ещё безплагиновые методы реализации многофакторной сортировки?
Спасибо.