サポート » 使い方全般 » カスタム投稿タイプ 各ターム一覧

  • 解決済 tky000

    (@tky000)


    いろいろと検索してみましたが、見当たらずお助けいただければと思います!

    ■やりたいこと
    カスタム投稿タイプで作成した、カテゴリ内の各スラッグ一覧を、一つのタクソノミーで自動で一つずつの表示を実現したいと思っています。

    カテゴリ1
    taxonomy-category01.php
    上記のテンプレート内で、投稿ページにて作成した際、チェックした同スラッグのみを一覧でループ表示させたいです。
    ※他にチェックしたスラッグは表示させない。(除外)

    参考にしたページ
    参考ページ

    参考にさせていただいたページでは、一つの投稿で他のスラッグをチェックしていると(スラッグ名は事なる名前)、同様に「羅列」されていましたので
    一つのスラッグに対して、一覧が実現できればと思っております。

    何卒、よろしくお願いいたします。

    • このトピックはtky000が4年、 7ヶ月前に変更しました。
2件の返信を表示中 - 1 - 2件目 (全2件中)
  • こんにちは

    get_terms() などで対象とするターム以外のタームを取得して、除外(’NOT IN’)するようにするといいのではないでしょうか。

    taxonomy-category01.php

    WordPress 標準のカスタム分類アーカイブインデックスページを使用する場合は、pre_get_posts フックなどでメインクエリを変更するのがいいかと思います。

    pre_get_posts フックを使用する場合の例:

    テーマの functions.php に、

    function my_pre_get_posts_by_category01( $query ) {
    	if ( ! is_admin() && $query->is_main_query() && is_tax( 'category01' ) ) {
    		$term_id = $query->queried_object_id;
    		$term_ids = get_terms( 'category01', array( 'exclude' => $term_id, 'fields' => 'ids' ) );
    		$tax_query = array( array(
    			'taxonomy' => 'category01',
    			'field'    => 'term_id',
    			'terms'    => $term_ids,
    			'operator' => 'NOT IN',
    		) );
    		$query->set( 'tax_query', $tax_query );
    	}
    }
    add_action('pre_get_posts', 'my_pre_get_posts_by_category01');
    トピック投稿者 tky000

    (@tky000)

    @ishitakaさま

    早速のご教示、誠にありがとうございました。
    すみません、私の説明不足が過ぎて、閲覧いただいている方にうまく伝わっていませんでした。。(失礼いたしました。)

    下記、参考ページにて私がやりたかった実装が実現できました!!!!
    タクソノミーの一覧ページ内でのターム別一覧表示について教えてください。

    早急にご回答くださった@ishitakaさまには、大変感謝しております!
    ありがとうございました。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「カスタム投稿タイプ 各ターム一覧」には新たに返信することはできません。