Сортировка Wordpress

179
05 марта 2018, 01:15

Подскажите как отсортировать записи по произвольному числовому полю, но что бы если поле не содержит ни какого значения, то сортировка была бы например по ID или дате модификации. При сортировке по числовому значению meta_value_num столкнулся с такой проблемой, если значение в поле отсутствует или они одинаковые, то при каждой перезагрузке страницы записи не имеющие этого значения выводятся рандомно, если использовать meta_value то сортировка не логичная. Вот код для сортировки по произвольному полю

'posts_per_page' => 9,
'post_type'         => 'catalog',
'meta_key'          => 'number',
'orderby'           => 'meta_value_num',
'order'             => 'ASC',
'paged'          => $paged,

Подскажите как сделать сортировку по ID, но если есть произвольное поле то выводить такие посты в списке выше и в соответствии со значением поля.

Пример: в скобках значение произвольного поля

  1. Пост id 5 (1)
  2. Пост id 2 (2)
  3. Пост id 1 ()
  4. Пост id 3 ()
  5. Пост id 4 ()
  6. Пост id 6 ()
  7. ....
Answer 1

А сделайте два запроса с последовательным выводом. Первый с исключением пустых meta_value:

'posts_per_page' => 9,
'post_type'      => 'catalog',
'meta_key'       => 'number',
'meta_value'     => ' ',
'meta_compare'   => '!=',
'orderby'        => 'meta_value_num',
'order'          => 'ASC',
'paged'          => $paged,

И следом второй, исключая не пустые meta_value:

'posts_per_page' => 9,
'post_type'      => 'catalog',
'meta_key'       => 'number',
'meta_value'     => '',
'meta_compare'   => '=',
'orderby'        => 'meta_value_num',
'order'          => 'ASC',
'paged'          => $paged,

Не проверял =)

READ ALSO
OpenMP Распараллелить цикл C++

OpenMP Распараллелить цикл C++

Распараллелить цикл:

250
C++ Error: double free or corruption. Thread. File. Exception. Lambda.

C++ Error: double free or corruption. Thread. File. Exception. Lambda.

Ожидал вывод "Exception opening file" и "Exception get line" каждые 5 секунд

284
Arduino timeout communicating with programmer error

Arduino timeout communicating with programmer error

При загрузке простейшего блинка или hello world на Arduino Mega2560, получаю следующие ошибки:

211
Реализация синглтона через unique_ptr

Реализация синглтона через unique_ptr

Встретил несколько раз в проектном коде реализации синглтонов подобным образом:

215