Вопрос

У меня есть следующий пользовательский запрос, написанный для страницы- $menu_loop = new WP_Query( array( 'post_type' => 'page', 'posts_per_page' => 50, 'post_parent' => 616, 'order_by' => 'post_title', 'order' => 'ASC' ) ); while ($menu_loop->have_posts()) : $menu_loop->the_post();

Проблема в том, что когда контент выводится на страницу, он не находится в алфавитном порядке по post_title. Это действительно озадачивало меня, потому что если я вручную запрашиваю БД- SELECT * FROM wp_2_posts WHERE post_type = 'page' AND post_parent = 616 ORDER BY post_title ASC

Затем результаты возвращаются правильно. Кроме того, я print_r ($ menu_loop) и одна из записей массива- фактический запрос, отправленный в БД, и он неправильно и показывает- [request] => SELECT SQL_CALC_FOUND_ROWS wp_2_posts.* FROM wp_2_posts WHERE 1=1 AND wp_2_posts.post_parent = 616 AND wp_2_posts.post_type = 'page' AND (wp_2_posts.post_status = 'publish') ORDER BY wp_2_posts.post_date ASC LIMIT 0, 50

Который, если вы посмотрите, вы увидите заказ по утверждению, сортируется по дате поста, а не на заголовок сообщения.

Что я здесь делаю не так?

Это было полезно?

Решение

Ваш параметр сортировки должен быть: 'orderby' => 'title'

Лицензировано под: CC-BY-SA с атрибуция
Не связан с wordpress.stackexchange
scroll top