Использование порядка WP Query по произвольному полю, а затем по случайному - PullRequest
0 голосов
/ 18 марта 2019

Я пытаюсь использовать WP Query для получения информации из базы данных.Я пытаюсь заказать пост по menu_order, и если порядок меню такой же стандартный 0, то посты должны быть рандомизированы.

 SELECT   sus_wp_posts.* FROM sus_wp_posts  LEFT JOIN sus_wp_term_relationships ON (sus_wp_posts.ID = sus_wp_term_relationships.object_id) WHERE 1=1  AND (sus_wp_term_relationships.term_taxonomy_id IN (16,17,18,19,20)) AND sus_wp_posts.post_type = 'portfolio-item' AND ((sus_wp_posts.post_status = 'publish')) GROUP BY sus_wp_posts.ID ORDER BY menu_order ASC, RAND()

Это делает трюк, но я не могу получить параметры orderby, как я это с WP_Query.Я попробовал это так:

 $query_array = array(
        'post_status'    => 'publish',
        'post_type'      => 'portfolio-item',
        'posts_per_page' => $params['number_of_items'],
        'orderby'        => array('menu_order', 'post_title'),
        'order'          => 'ASC'
    );

Но тогда я получаю следующий вывод:

SELECT   sus_wp_posts.* FROM sus_wp_posts  LEFT JOIN sus_wp_term_relationships ON (sus_wp_posts.ID = sus_wp_term_relationships.object_id) WHERE 1=1  AND ( 
  sus_wp_term_relationships.term_taxonomy_id IN (16,17,18,19,20)
) AND sus_wp_posts.post_type = 'portfolio-item' AND ((sus_wp_posts.post_status = 'publish')) GROUP BY sus_wp_posts.ID
...