サポート » 使い方全般 » カスタム投稿記事内に、同じ子タームの関連記事を表示させたい

  • 解決済 fujikana

    (@fujimon)


    catboxというカスタム投稿を作成し、areaというタクソノミーを設けています。
    areaは親と子で構成されておりますが、以下をsingle-catbox.phpに記述したところ、
    同じarea内の関連記事を拾って表示してくれますが、親タームで分類しているようです。
    希望は子タームのみで分類して欲しいのですが、どのようにすればよいのでしょうか。

    <?php
    global $post;
    $term = array_shift(get_the_terms($post->ID, ‘area’));
    $args = array(
    ‘numberposts’ => 5, //5件表示
    ‘post_type’ => ‘catbox’, //カスタム投稿タイプ名
    ‘taxonomy’ => ‘area’, //タクソノミー名
    ‘term’ => $term->slug,
    ‘orderby’ => ‘rand’,
    ‘post__not_in’ => array($post->ID)
    );
    ?>
    <?php $myPosts = get_posts($args); if($myPosts) : ?>
    <?php foreach($myPosts as $post) : setup_postdata($post); ?>
    <p>“><?php the_post_thumbnail(‘thumbnail’); ?><?php the_title(); ?></p>
    <?php endforeach; ?>
    <?php else : ?>
    <p>関連記事はまだありません。</p>
    <?php endif; wp_reset_postdata(); ?>

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • こんにちは

    下記のように変更するのではどうでしょうか。

    $term = array_shift(get_the_terms($post->ID, 'area'));

    $term = end( get_the_terms( $post->ID, 'area' ) );

    トピック投稿者 fujikana

    (@fujimon)

    ishitaka様

    早速ご返信いただきありがとうございます。
    試してみたのですが、タームによっては子タームが無視されてしまいます。

    親:大阪府
     子:大阪市 / 堺市 / 豊中市

    上記タームの場合、堺市の記事に豊中市が混じったりします。

    親スラッグは、osaka
    子スラッグは、osaka-city / sakai-city / toyonaka-city
    となっています。

    ご指摘の行が問題なのかと思うのですが・・・。

    おっと、失礼しました。子タームが複数の場合を想定していませんでした。

    下記のコードではどうでしょうか。

    global $post;
    
    // 親タームを除くスタッグ名の配列を取得する。
    $children_terms = array();
    $terms = get_the_terms( $post->ID, 'area' );
    foreach ( $terms as $term ) {
    	if ( $term->parent !== 0 ) {
    		$children_terms[] = $term->slug;
    	}
    }
    
    $args = array(
    	'numberposts' => 5,
    	'post_type' => 'catbox',
    	'orderby' => 'rand',
    	'post__not_in' => array( $post->ID ),
    	'tax_query' => array( array(
    		'taxonomy' => 'area',
    		'field' => 'slug',
    		'terms' => $children_terms,
    	) )
    );
    (省略)
    トピック投稿者 fujikana

    (@fujimon)

    ishitaka様

    再度のご教示ありがとうございます。

    出来ました!
    感動しました!

    願い通りの表示になり、大変助かりました。
    この度はお世話になりました。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「カスタム投稿記事内に、同じ子タームの関連記事を表示させたい」には新たに返信することはできません。