Список сообщений в алфавитном порядке


Чего я пытаюсь добиться, так это установить список, отображаемый в алфавитном порядке. Есть какие-нибудь мысли о том, как я могу успешно достичь этого?

Я вставил фрагмент ниже для справки.

 <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>
Author: Pieter Goosen, 2014-11-25

3 answers

Установите следующий код:

 <?php if (is_category()) { $posts = query_posts($query_string .'&orderby=title&order=asc'); } ?>

Вы можете исключить условие if, если не используете категорию.

Для получения дополнительной информации: Размещение сообщений в алфавитном порядке

 -3
Author: Helping Hands, 2014-12-01 05:11:17

В отличие от того, что предлагается принятым ответом, вы никогда не должны использовать 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' );
    }
});
 2
Author: Pieter Goosen, 2017-04-13 12:37:34

Вы можете использовать этот плагин: Запись категории заказа GR (https://wordpress.org/plugins/gr-order-category-post/)

 0
Author: Timothy Huynh, 2018-12-23 03:23:08