Я хочу получить сообщение от 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')
)
)
);
Я хочу получить сортировку по номеру класса, а затем по номеру стула.
но его код не работает, как это можно сделать?
Хотя новый orderby
параметр велик в WP_Query
, он не поддерживает несколько orderby
для нескольких meta_key
«S.
Я прошел через несколько сценариев и даже пошел и копался в trac и make и придумал следующее
make.wordpress.org Более мощный порядок в WordPress 4.0
Ни на один из вопросов, касающихся этой самой проблемы, ответа не было. Из этих двух ссылок также видно, что существует проблема упорядочения meta_key
и другое поле, например, дата публикации. Я еще не пробовал это.
Я искренне думаю, что у вас есть два варианта без создания двух запросов.
взломать с помощью posts_orderby
фильтр, как описано @s_ha_dum в своем ответе Вот
Используя порядок PHP, используя usort
, Идея здесь состоит в том, чтобы отсортировать ваш запрос по одному meta_key
а затем взять массив возвращенных сообщений ($ posts) и отсортировать их по второму meta_key
до начала цикла. Вы можете использовать the_posts
фильтр (только не забудьте удалить фильтр, как только сделано) или просто отключить $posts
в вашем шаблоне и установите его с переупорядоченным массивом постов после того, как сделано
Других решений пока нет …