• 解決済 amagaeru0426

    (@amagaeru0426)


    <?php if(have_posts()) : ?><?php while(have_posts()) : the_post(); ?>

    <ul class=”list”>
    <li class=”furigana”><?php the_title(); ?>
    <li class=”title”>< a href=”<?php the_field(“url”, $post->ID); ?>” target=”_blank”><?php the_field(“store”, $post->ID); ?>
    <li class=”lead”><?php the_field(“lead”, $post->ID); ?>
    <li class=”post”><?php the_content(); ?>
    < /ul>

    <?php endwhile; endif; ?>

    上記の方法で、カテゴリーページのカテゴリー情報を取得させているのですが、
    あいうえお順に並び変えたいので、
    <?php query_posts(“&orderby=title&order=ASC”); ?>
    を入れてみたのですが、そうすると、全ての記事が表示されてしまいます。

    変更後 1
    <?php if(have_posts()) : ?><?php query_posts(“&orderby=title&order=ASC”); ?><?php while(have_posts()) : the_post(); ?>

    変更後 2
    <?php if ( have_posts() ) : query_posts(“&orderby=title&order=ASC”); ?>
    <?php while (have_posts()) : the_post(); ?>

    これでは全件表示させてしまうので、wp_reset_query();を追加してみましたがこれも駄目でした。

    <?php endwhile; ?>
    <?php wp_reset_query(); ?>
    <?php endif; ?>

    取得のさせ方に問題があるのでしょうか?

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • query_posts のパラメーターにカテゴリーの条件が含まれていないため、カテゴリーに関係なく全て取得してしまっています。

    デフォルトのパラメーターと文字列の結合を行うか

    query_posts( $query_string . '&orderby=title&order=ASC' );

    pre_get_posts フックでクエリー条件の変更を行ってください。

    function customize_query_vars( $wp_query ) {
    	if ( is_admin() || ! $wp_query->is_main_query() ) {
    		return;
    	}
    
    	if ( $wp_query->is_category() ) {
    		$wp_query->set( 'orderby', 'title' );
    		$wp_query->set( 'order'  , 'ASC' );
    	}
    }
    add_action( 'pre_get_posts', 'customize_query_vars' );

    トピック投稿者 amagaeru0426

    (@amagaeru0426)

    上記でできました。

    カテゴリーの条件が入っていなかったんですね。
    知らないタグばかりなので、このあたりを勉強してみます。
    ありがとうございました。

2件の返信を表示中 - 1 - 2件目 (全2件中)

トピック「カテゴリページで並び順を変更するとカテゴリ全件が表示される。」には新たに返信することはできません。