サポート » 使い方全般 » 複数タームの関連記事を表示

  • 解決済 toakts0024

    (@toakts0024)


    いつもお世話になっております。

    今回、カスタム投稿のsingreページで関連記事のような形を実現したいと思っております。

    具体的な構図は

    例)
    カスタム投稿:typeA
    カスタム投稿:typeB
    カスタムタクソノミー:taxA
    taxAに、term1.term2,term3・・・

    といった感じで作っております。
    カスタム投稿typeBは店舗情報、カスタムタクソノミーtaxAは店舗名のようなイメージで、
    タームの数だけ1件ずつtypeBの店舗情報があるという構成です。

    single-typeA.phpで表示をした時に、
    カスタムタクソノミーで同じタームが付いているカスタム投稿typeBの記事を表示したいと思っております。

    色々調べて作ってみたところ、

    single-typeA.php

    <?php
    global $post;
    $term2 = array_shift(get_the_terms($post->ID, 'taxA')); //←ここが追加
    $args2 = array(
    	'numberposts' => 0,
    	'post_type' => 'typeB', //カスタム投稿タイプ名
    	'taxonomy' => 'taxA', //タクソノミー名
    	'term' => $term2->slug, //ターム名
    );
    ?>
    <?php $myPosts = get_posts($args2); if($myPosts) : ?>
    <?php foreach($myPosts as $post) : setup_postdata($post); ?>
    
    //ループ中の処理
    
    <?php endforeach; ?>
    <?php else : ?>
    <?php endif; wp_reset_postdata(); ?>

    こんな感じで作ってみたのですが、

    タームを複数チェックしている場合、1件しか関連記事が表示されません。

    タームを複数設定した時に全部表示するにはどうしたらいいのでしょうか?

    分かりにくい説明で申し訳ありませんが、何卒よろしくお願い致します。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • toakts0024さん
    array_shift()を使うと1件しか表示できなくなってしまいます。
    array_values()なら全件表示できるみたいですが

    ワードプレス的だと、foreachで繰り返し処理した方が現実的ですかね?($term2のところでループさせる感じです)

    表示の仕方にもよりますが
    <?php the_terms( $post->ID, ‘taxA’, ‘, ‘ ); ?>
    でも表示可能です。

    トピック投稿者 toakts0024

    (@toakts0024)

    mura0403さん

    さっそくのご返答ありがとうございます。

    array_values()を試してみたところ、希望通りの表示が出来ました!

    本当にありがとうございました!

    toakts0024 さん

    良かったです。
    こちらのサイト参考に致しました。

    忘れっぽいエンジニアのPHPリファレンス
    http://www.php-ref.com/b2api/01_array_values.html

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • トピック「複数タームの関連記事を表示」には新たに返信することはできません。