web-dev-qa-db-ja.com

カスタム投稿タイプをアルファベット順に表示する

カスタム投稿タイプを作成しました。これには現在約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();
?>
7
toomanyairmiles

これを試して:

<?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();
?>

カスタムクエリの詳細についてはこちらをご覧ください: http://codex.wordpress.org/Class_Reference/WP_Query

7
Maciej Kuś

私はこれが古いスレッドであることを認識していますが、私は同じことをやろうとしていることに出会い、テンプレートとループではなくfunctions.phpを使ってプレクエリアクションを追加することにしました。

私の場合;私は約25のヨガクラスのページを持っていて、カスタム投稿タイプとして設定されています。

// 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' );
6
shipwreck