• 解決済 jp03rika19

    (@jp03rika19)


    現在カスタムフィールドを用いて、投稿日ではなくフィールド内で使用している日付で投稿一覧をソートするようにしています。
    具体的には、archive.phpに対し、記事呼び出しループ処理が元々は以下のようにしていたところを

    <?php if ( have_posts() ) : ?>
    
    <?php /* Start the Loop */ ?>
    
    <?php while ( have_posts() ) : the_post(); ?>
    
    //テンプレート呼び出し
    			
    <?php endwhile; ?>
    
    <?php if(function_exists('wp_pagenavi')) : wp_pagenavi(); endif; ?>
    
    <?php else : ?>
    
    //テンプレート呼び出し
    
    <?php endif; ?>

    こちらのような記述に変更しました。

    <?php // 投稿をカスタムフィールドの値でソートする
      $args = array( // クエリの作成
        'post_type' => '投稿タイプ', // 投稿タイプの指定
        'orderby' => 'meta_value_num', // カスタムフィールド値が数値の場合 meta_value_num を指定
        'posts_per_page' => -1, // すべての投稿を表示
        'meta_query' => array( // カスタムフィールドの指定
          array(
            'key' => 'フィールド名', // フィールド名の指定
            'type'=>'DATE' // カスタムフィールドの値が日付であることを宣言
          )
        )
      );
      $the_query = new WP_Query($args); if($the_query->have_posts()):
    ?>
    			
    <?php while ($the_query->have_posts()): $the_query->the_post(); ?>
    
    //テンプレート呼び出し
    			
    <?php endwhile; ?>
    			
    <?php if(function_exists('wp_pagenavi')) : wp_pagenavi(); endif; ?>
    
    <?php else : ?>
    
    //テンプレート呼び出し
    
    <?php endif; ?>

    ところがこちらの記述を行ったところ、投稿一覧から、特定のカテゴリーを選択すると、以前は選択したカテゴリーのみが表示されたのですが、おそらく日付順でソートするという記述を行ったせいか、カテゴリーを選択しても投稿一覧と同じように、全ての記事が日付順にソートされた状態で出てきてしまいます。

    これを、カテゴリーを選択した場合は、そのカテゴリーが日付順にソートされた状態で出てくる、という風にするにはどのようにすればよいでしょうか。

    function.phpに記述するのか、別のphpを用意するのか等、初心者のため詳細に教えて頂けますと助かります。
    よろしくお願いいたします。

  • トピック「カスタムフィールドでのソートについて」には新たに返信することはできません。