问题描述

我已经创建了一个自定义的帖子类型,它现在有大约 100 个帖子。我只想按字母顺序显示这些字母顺序,而不是默认的,最近似乎是最近的。我已经尝试过各种插件和其他解决方案,但大多数只允许手动排序 (太多的帖子可以工作),我被告知,下面的代码应该可以工作,但似乎没有任何效果。

任何帮助赞赏。

<?php
    $args = array( 'post_type' => 'tenant', 'posts_per_page', 'orderby=title&order=ASC' => 5 );
    $loop = new WP_Query( $args );
    while ( $loop->have_posts() ) : $loop->the_post();
?>

最佳解决方案

尝试这个:

<?php
$args = array( 'post_type' => 'tenant', 'posts_per_page'=>5, 'orderby'=>'title','order'=>'ASC');
$loop = new WP_Query( $args );
while ( $loop->have_posts() ) : $loop->the_post();
?>

您可以在这里找到更多信息 o 自定义查询:http://codex.wordpress.org/Class_Reference/WP_Query

次佳解决方案

我意识到这是一个旧的线程,但我遇到了试图做同样的事情,并决定使用 functions.php 而不是模板和循环添加一个 pre-query 操作。

在我的情况下我有一个大约 25 个瑜伽课的页面,设置为一个定制的帖子类型’classes’

// function and action to order classes alphabetically

function alpha_order_classes( $query ) {
    if ( $query->is_post_type_archive('classes') && $query->is_main_query() ) {
        $query->set( 'orderby', 'title' );
        $query->set( 'order', 'ASC' );
    }
}

add_action( 'pre_get_posts', 'alpha_order_classes' );

参考文献

注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。