Список сообщений в алфавитном порядке
Чего я пытаюсь добиться, так это установить список, отображаемый в алфавитном порядке. Есть какие-нибудь мысли о том, как я могу успешно достичь этого?
Я вставил фрагмент ниже для справки.
<ul class="hotel-list">
<?php while (have_posts()) : the_post(); ?>
<?php
$short_description = get_post_meta(get_the_ID(), 'short_search_description', true);
$destination = get_post_meta(get_the_ID(), 'destination', true);
?>
<li>
<a href="<?php the_permalink(); ?>"><?php the_post_thumbnail(array(250, 9999)); ?></a>
<a href="<?php the_permalink(); ?>"><?php the_title(); echo $destination; ?></a>
<p><?php echo $short_description; ?></p>
<div class="clear"></div>
</li>
<?php endwhile
; ?>
</ul>
3 answers
Установите следующий код:
<?php if (is_category()) { $posts = query_posts($query_string .'&orderby=title&order=asc'); } ?>
Вы можете исключить условие if, если не используете категорию.
Для получения дополнительной информации: Размещение сообщений в алфавитном порядке
В отличие от того, что предлагается принятым ответом, вы никогда не должны использовать query_posts
Примечание: Эта функция не предназначена для использования плагинами или темами. Как будет объяснено позже, существуют более эффективные и производительные варианты изменения основного запроса. query_posts() - это чрезмерно упрощенный и проблематичный способ изменения основного запроса страницы путем замены его новым экземпляром запроса. Это неэффективно (повторные запуски SQL-запросов) и приведет к явному сбою в некоторых обстоятельства (особенно часто при разбиении сообщений на страницы).
Кроме того, глядя на ваш код, это основной запрос по какому-то шаблону, и, поскольку вы даже не нашли времени ответить на комментарий @Roberthue к OP, я до сих пор не знаю, какой шаблон. Это подводит меня к следующему: никогда не заменяйте основной запрос для любого типа пользовательского запроса на любой странице архива или домашней странице. Пользовательские запросы могут заменять только основной запрос в шаблонах страниц. Пожалуйста, посмотрите этот пост, который должен объяснить все, почему я сделал эти заявления
Вы могли бы просто использовать pre_get_posts
чтобы изменить порядок отправки по определенному шаблону в сочетании с условными тегами
Пример изменения почтового заказа на странице категории
add_action( 'pre_get_posts', function ( $query ) {
if ( !is_admin() && $query->is_home() && $query->is_main_query() ) {
$query->set( 'orderby', 'title' );
$query->set( 'order', 'ASC' );
}
});
Если вам это нужно для всех шаблонов, вы можете сделать что-то вроде этого
add_action( 'pre_get_posts', function ( $query ) {
if ( !is_admin() && !$query->is_page() && $query->is_main_query() ) { //Exclude page templates
$query->set( 'orderby', 'title' );
$query->set( 'order', 'ASC' );
}
});
Вы можете использовать этот плагин: Запись категории заказа GR (https://wordpress.org/plugins/gr-order-category-post/)