Получить порядок сообщений по meta_value_num с двумя мета-ключами

Я хочу получить сообщение от get_post упорядочить по meta_value_num и мета-ключам, я попробовал этот код:

get_posts(
array(  'post_type' => 'posts',
'order' => 'ASC',
'orderby' => 'meta_value_num',
'meta_query' => array(
array('key' => 'class'),
array('key' => 'chair')
)
)
);

Я хочу получить сортировку по номеру класса, а затем по номеру стула.
но его код не работает, как это можно сделать?

1

Решение

Хотя новый orderby параметр велик в WP_Query, он не поддерживает несколько orderby для нескольких meta_key«S.

Я прошел через несколько сценариев и даже пошел и копался в trac и make и придумал следующее

Ни на один из вопросов, касающихся этой самой проблемы, ответа не было. Из этих двух ссылок также видно, что существует проблема упорядочения meta_key и другое поле, например, дата публикации. Я еще не пробовал это.

Я искренне думаю, что у вас есть два варианта без создания двух запросов.

  • взломать с помощью posts_orderby фильтр, как описано @s_ha_dum в своем ответе Вот

  • Используя порядок PHP, используя usort, Идея здесь состоит в том, чтобы отсортировать ваш запрос по одному meta_key а затем взять массив возвращенных сообщений ($ posts) и отсортировать их по второму meta_key до начала цикла. Вы можете использовать the_posts фильтр (только не забудьте удалить фильтр, как только сделано) или просто отключить $posts в вашем шаблоне и установите его с переупорядоченным массивом постов после того, как сделано

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]