サポート » 使い方全般 » カスタム投稿を含む記事一覧で正しく時系列表示できない

  • 解決済 tamakana

    (@tamakana)


    お世話になります。

    category.phpで、カスタム投稿含むすべての記事一覧を表示させるために、
    function.phpに以下の記述をしました。

    
    function my_modify_main_query( $query ) {
        if ( is_admin() || ! $query->is_main_query() )
            return;
    
        if ( $query->is_category() || $query->is_tag() ) {
    
            $query->set( 'post_type', array( 'post', 'カスタム投稿1', 'カスタム投稿2' ) );
            
            return;
        }
    }
    

    この時点では正しく表示できましたが、
    さらに「古い記事順」に表示させるため、下記を追加しました。

    
    function my_pre_get_posts($query) {
        if (is_category('カテゴリー')) {
            $query->set('order', 'DESC');
        }
    }
    add_action('pre_get_posts', 'my_pre_get_posts');
    

    すると、各投稿タイプごとに時系列に並んでしまうようになってしまいました。
    投稿タイプ関係なく、古い記事順に表示するにはどのようにすれば良いでしょうか。

    ご教示いただけますと幸いです。
    宜しくお願いいたします。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • こんにちは

    私の環境ではそうはなりませんでした。
    正しく日付の順に並びました。
    うまくいかない原因ははっきり分かりませんが・・・

    念のためにorderbyも指定してみてはどうでしょうか。
    それから、他のpre_get_postsで orderby を制御されている可能性もあるので、呼び出し順を遅くしてみてはどうでしょうか。

    function my_pre_get_posts( $query ) {
    	if ( is_category( 'カテゴリー' ) ) {
    		$query->set( 'orderby', 'date' );
    		$query->set( 'order', 'ASC' );
    	}
    }
    add_action( 'pre_get_posts', 'my_pre_get_posts', 99 );

    あと、古い順はDESCではなくASCです。

    トピック投稿者 tamakana

    (@tamakana)

    munyagu さま

    ご返信いただきありがとうございます。

    いただいたコードで全ての記事を正しく時系列順に並べることができました。
    ありがとうございます!

    解決済みにさせていただきます。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「カスタム投稿を含む記事一覧で正しく時系列表示できない」には新たに返信することはできません。