Я хочу вывести список руководств, в которых у каждого гида есть голоса и рейтинг. Поэтому я хочу отсортировать список лидеров по рейтингу и голосам.Wordpress - WP_Query Несколько OrderBy Meta_Key
Пример:
Guide Name Rating Votes
Guide1 10 3
Guide2 10 2
Guide3 10 1
Guide4 9 6
Guide5 9 2
Так что я должен заказать направляющие на 2 meta_key с являются
omvp_vote_rating and omvp_total_vote
я пытался много много способов, чтобы заставить его работать, но не получил его еще , Существует один способ, которым я почти он работает, но проблема в том, что я не могу получить его на заказ по meta_key, я могу только заказать его нормального поля как comment_count, modified, date, rand (random), title ...
Так вот мой код
$args = array(
'post_type' => 'guides',
'meta_key' => 'omvp_vote_rating',
'post_status' => 'publish',
'posts_per_page' => 20,
'meta_query' => array(
array(
'key' => 'omvp_vote_rating',
'compare' => '>=',
'value' => 0
),
array(
'key' => 'omvp_total_vote',
'compare' => '>=',
'value' => 0
),
),
'orderby' => array(
'title' => 'ASC', //<- This is working
'omvp_total_vote' => 'DESC' //<- This is not working
),
);
$wp_query = new WP_Query($args);
Эй, мне удалось заставить его работать с таким запросом. Проблема в том, что пользователь может выбрать другой порядок, например orderby Title. В моем коде, когда пользователь Orderby Title, ip использует обычный WP_Query ($ args) с 'orderby' => 'title'. Моя проблема заключается в том, что пользователь решает упорядочить заголовок или упорядочить рейтинг, тогда моя композиция цикла меняется, поэтому она идет от «if ($ posts-> has_posts()): while (...» to «if ($ pageposts): global $ post; foreach ($ pageposts ... ", я не совсем уверен, как я мог бы справиться с этим. –
Если я правильно понял вашу проблему, вы можете установить условие if-else на основе полей orderby. –
Да, я правильно понять, но дело в том, что я должен дублировать этот запрос несколько раз, чтобы он соответствовал каждой потребности из переданного значения выпадающего списка –