• Приветствую всех!
    С сортировкой данных не сильно силен, но по стандартным данным уже разобрался, как работать. Проблема возникла, когда нужно было сортировать данные по второму ключу meta_key. Структура такая:

    <select name="orderby">
    	<option value="title">заголовок</option>
    	<option value="duration">продолжительность</option>
    </select>

    по заголовку сортируются без проблем записи, что по DESC, что по ASC
    а вот второй параметр берется из ключа duration, где при публикации записи вносятся примерные цифры: 29, 120, 60. Цифры все целые.
    Вот сам код сортировки:

    $args = array();
    query_posts($args);
    
    $args = array (
     'post_type' => 'post',
     'posts_per_page' => 5,
     'order' => 'DESC',
     'meta_query' => array (
        array (
          'meta_key' => 'title',
          'orderby' => $_GET['orderby'],
        ),
     )
    );
    
    // второй массив
    $args = array (
     'meta_key' => 'duration',
     'orderby' => 'meta_value_num',
    );
    
    if ( have_posts() ) : while ( have_posts() ) : the_post();
    // вывод записи
    endwhile; endif;

    При поиске первый массив $args сортирует правильно данные по заголовку.
    А вот из второго массива сортировка поиска не хочет работать. Я делал даже двойной массив из meta_query.
    Внизу сделал вывод только по «duration» и как ни странно записи на этой же странице вывелись в правильно порядке, а именно: 120, 60, 29. Выводил только цифры, чтобы видеть результаты сортировки, не нажимая каждый раз на кнопку поиск.
    При выборе из select сортировку по duration, нажимаю на поиск и на странице поиска ни в какую не сортирует записи по данному селекту. Записи выводятся по дате создания.

    Помогите разобраться с данной проблемой.

    • Тема изменена 7 лет, 3 месяца назад пользователем lizverd. Причина: небольшое пояснение
  • Тема «Сортировка записей с двумя meta_key» закрыта для новых ответов.