Упорядочить посты по алфавиту с цифрами в заголовке (WP_Query)
Есть сайт на WordPress. Использую вывод постов таким образом:
<?php
// задаем нужные нам критерии выборки данных из БД
$cat_id = get_cat_ID('courses_cat');
$args = array(
'cat' => $cat_id,
'post_type' => 'courses',
'order' => 'ASC',
'orderby' => 'title',
);
$query = new WP_Query( $args );
// Цикл
if ( $query->have_posts() ) {
while ( $query->have_posts() ) {
$query->the_post();
echo '<li>' . get_the_title() . '</li>';
}
} else {
// Постов не найдено
}
// Возвращаем оригинальные данные поста. Сбрасываем $post.
wp_reset_postdata();
?>
Мне выводит таким образом (даже в админке):
Курс 1
Курс 10
Курс 2
Курс 3
Курс 4
Курс 5
Курс 6
Курс 7
Курс 8
Курс 9
Как упорядочить таким образом?
Курс 1
Курс 2
Курс 3
Курс 4
Курс 5
Курс 6
Курс 7
Курс 8
Курс 9
Курс 10
Ответы (1 шт):
Автор решения: Valerii Vasiliev
→ Ссылка
Сортировка по заголовку в данном случае будет работать некорректно, потому что в заголовке микс букв и цифр
Необходимо использовать сортировку через порядковый номер menu_order
'order' => 'ASC',
'orderby' => 'menu_order'
добавить поддержку его в редактирование поста
add_action( 'init', 'add_page_attributes_support' );
function add_page_attributes_support() {
add_post_type_support( 'courses', 'page-attributes' );
}