サポート » 使い方全般 » 子タームごとの新着記事一覧表示

  • 解決済 mametasu

    (@mametasu)


    親子関係のあるタームを持った、カスタム投稿をつくっています。
    archive-photo.php にて、【ターム:event】の子タームごとの新着記事一覧を表示したいと考えているのですが、子タームへのアクセス方法などが良く分かっておらず…

    良い方法を教えていただきたいです。よろしくお願いいたします。

    【ポストタイプ】photo

    【タクソノミー】photo_category

    【ターム】
    info
    event
     - event2011
     - event2012
        :
        :
     (定期的に追加される)

    【表示イメージ】

    event2012(子ターム名)
    ・記事の内容
    ・記事の内容
    ・記事の内容

    event2011(子ターム名)
    ・記事の内容
    ・記事の内容
    ・記事の内容
       :
       :

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • モデレーター jim912

    (@jim912)

    基本的な流れとしては、

    1. get_terms で イベントの子タームを取得(パラメーターで parentを指定)
    2. 得られた子タームを foreach でループ
    3. 子タームのターム名を表示
    4. 子タームに属する記事を get_posts、もしくは query_posts で取得
    5. 取得出来た記事をループ処理で表示
    6. query_posts の場合は、wp_reset_queryを忘れずに
    7. 子タームのループ終了

    といった形になります。

    カテゴリーですが、近い処理を行っている記事を紹介しておきますので、参考にしてください。

    カテゴリーページにカテゴリーに属する子カテゴリーと記事リストを表示させる方法

    手順を教えてくださりどうもありがとうございます。

    下記のように記述してみました。表示としては問題なさそうですが…
    おかしな部分がありましたら教えていただきたいです。
    よろしくお願いします。

    <?php
    	$terms = get_terms( 'photo_category' ,'parent=XX' );
    	foreach ( $terms as $term ) {
    		echo esc_html( $term->name );
    
    		$wp_query = new WP_Query();
    		$param = array(
    			'post_type' => 'photo',
    			'taxonomy' => 'photo_category',
    			'term' => $term->slug
    		);
    		$wp_query->query($param);
    		if ( $wp_query->have_posts() ): while( $wp_query->have_posts() ) : $wp_query->the_post(); ?>
    
    			<li><?php the_title(); ?></li>
    
    		<?php
    		endwhile; endif;
    		wp_reset_query();
    
    	} ?>
    モデレーター jim912

    (@jim912)

    問題ないかと思います。

    どうもありがとうございました!
    勉強になりました。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「子タームごとの新着記事一覧表示」には新たに返信することはできません。