Поддержка Проблемы и решения WP_Query: множественная сортировка

  • Как сделать множественную сортировку в WP_Query(), объединяющую :
    ‘orderby’ => ‘meta_value’,
    ‘meta_key’ => ‘count’,
    ‘order’ => ‘DESC’,
    и:
    ‘orderby’ => ‘title’,
    ‘order’ => ‘ASC’

    Т.е. сортировка по первому полю count и по второму title в одном запросе.

Просмотр 3 ответов — с 1 по 3 (всего 3)
  • Речь идет о своем запросе или модификации главного? Если первое, то попробуйте такой вариант (основан на письме OTTO)

    function my_order($orderby) {
        //todo это примитивно, изменить
        return "wp_postmeta.meta_value+0 DESC, post_title ASC";
    }
    add_filter( 'posts_orderby', 'my_order' ); //Применяем фильтр к след. запросу
    
    $args = array(
        'post_type' => 'post',
        'meta_key'  => 'count',
        'orderby'   => 'meta_value_num title',
        'order'     => 'ASC',
    );
    $my_query = new WP_Query( $args ); //запрос
    
    remove_filter( 'posts_orderby', 'my_order' ); //удаляем фильтр

    Это набросок, далее сами.
    ЗЫ Предположил, что count — число.

    Если я правильно понял в версии 4.0 эту проблему решили, и мне надо подождать пару дней, и просто обновиться до новой версии. А потом дописать пару строчек.
    https://core.trac.wordpress.org/ticket/17065

    В любом случае спасибо, если в 4 версии будет такая же ерунда, воспользуюсь предложенным способом.

    если в 4 версии будет такая же ерунда,

    Проверил, работает. Говорят, через пару недель выйдет..

Просмотр 3 ответов — с 1 по 3 (всего 3)
  • Тема «WP_Query: множественная сортировка» закрыта для новых ответов.