サポート » 使い方全般 » タクソノミーのアーカイブ表示ができません

  • お世話になります。

    カスタム投稿(singular_name:news)で作成したtaxnomy(news_category)で登録した各taxnomy名(イベント情報(event)やセール情報(sale)など)の一覧表示(アーカイブ)をしたいのですが、すべてのnews_categoryが、一覧表示されます。

    それぞれのスラッグごとにそのスラッグの記事のみを表示させるにはどうすれば良いでしょうか??

    問題:https://abc.com/news_category/sale → 「news_category」の一覧表示になる

    理想:https://abc.com/news_category/sale → 「sale」のみ表示させる

    下記はfunctions.phpに追記したカスタム投稿作成とタクソノミー追記文です。

    add_action('init', 'news');
    function news() {
      register_post_type('news', array(
    'labels' => array(
    'name' => 'お知らせ',
        'singular_name' => 'news',
      ),
      'public' => true,
      'publicly_queryable' => true,
      'show_ui' => true,
      'query_var' => true,
      'rewrite' => true,
      'capability_type' => 'page',
      'has_archive' => true,
      'hierarchical' => false,
    'menu_position' => 10,
    'menu_icon' => 'dashicons-megaphone', // メニューで使用するアイコン
    'supports' => array('title', 'editor', 'thumbnail')
      ));
    register_taxonomy(
        'news_category',
        'news',
        array(
          'label' => 'カテゴリー',
          'hierarchical' => true,
          'public' => true,
          'show_in_rest' => true,
        )
      );
    }
    

    下記はアーカイブページのコードです。

    <?php
    $taxonomy_slug = array_keys(get_the_taxonomies())[0];
    $term_object = get_queried_object(); // タームオブジェクトを取得
    $term_slug   = $term_object->slug; // タームスラッグ
    $slug_name = get_post_type();
    $args = array(
    'posts_per_page' => 15, // 表示する投稿数
    'paged' => $paged, // ページング
    'post_type' => $slug_name,
    'taxonomy' => $taxonomy_slug,
    'term' => $term_slug,
    'orderby'   => 'date',
    'order' => 'DESC' // 降順 or 昇順
    );
    $my_posts = get_posts($args);
    ?>
    <?php foreach ($my_posts as $post) : setup_postdata($post);?>
    
    //リスト
    
    <?php endforeach; ?>
    <?php wp_reset_postdata(); ?>	

    ご教示頂ければ幸いです。

    どうぞ宜しくお願いいたします。

  • このトピックに返信するにはログインが必要です。