按字母顺序列出帖子

时间:2014-11-25 作者:Kenny Van Sittert

我试图实现的是按字母顺序设置列表。我如何才能成功地做到这一点,有什么想法吗?

我粘贴了下面的片段以供参考。

 <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 个回复
最合适的回答,由SO网友:Helping Hands 整理而成

设置以下代码:

 <?php if (is_category()) { $posts = query_posts($query_string .\'&orderby=title&order=asc\'); } ?>
如果不使用类别,则可以排除if条件。

更多参考:Alphabetizing Posts

SO网友:Pieter Goosen

与公认的答案所建议的相反,您不应该使用query_posts

Note: 此功能不适用于插件或主题。如后文所述,有更好、性能更好的选项来更改主查询。query\\u posts()是一种过于简单且有问题的方法,通过将页面的主查询替换为新的查询实例来修改它。它效率低下(重新运行SQL查询),并且在某些情况下会彻底失败(尤其是在处理POST分页时)。

另外,看看你的代码,这是对一些模板的主要查询,由于你甚至没有花时间回复@Roberthue对OP的评论,我仍然不知道是哪个模板。这让我想到以下几点:,never 将主查询替换为任何存档页或主页上的任何类型的自定义查询。自定义查询只能替换页面模板上的主查询。请参见this post 这就解释了我为什么要这么说

你可以简单地使用pre_get_posts 要更改特定模板上的邮政订单,请与conditional tags

更改类别页面上的发布顺序的示例

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\' );
    }
});

SO网友:Timothy Huynh

你可以使用这个插件:GR Order Category Post(https://wordpress.org/plugins/gr-order-category-post/)

结束

相关推荐

Can't use orderby in WP_Query

我无法在日期前订购我的帖子,descading。我有以下代码:$jobs = new WP_Query(array( \'posts_per_page\' => 50, \'post_type\' => \'job\', \'post_status\' => \'publish\', \'orderby\' => \'post_date\', \'order\' => \'DESC\',