Поддержка Плагины Многофакторная сортировка постов в цикле wp_query

  • Добрый день.

    Возник вопрос. Существует такая конструкция для вывода постов в пользовательской таксономии:

    $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», как первым значением в массиве. Остальные на сортировку не влияют.

    Как можно модифицировать функцию или какие есть ещё безплагиновые методы реализации многофакторной сортировки?

    Спасибо.

  • Тема «Многофакторная сортировка постов в цикле wp_query» закрыта для новых ответов.