サポート » 使い方全般 » カスタム投稿、タームを取得してボタンを生成したい

  • 解決済 sasasa24

    (@sasasa24)


    タイトル通りなのですが、
    カスタム投稿AAAのタクソノミーBBBのタームを取得して、
    動的にそのタームのslugをclassに付与、ターム名をボタンに表示したいです。
    そこで下記コードを記述しました。

    <?php
    	$categories = get_the_terms($post->ID, 'BBB');
    	foreach($categories as $category) :
    	echo '<button class="' $category->slug '">' . $category->name . '</button>';
    	endforeach;
     ?>

    が、3つあるタームのうち、1つしか取得出来ません。
    何か他に記述が必要なのでしょうか?
    どなたか教えてください。お願い致します。

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

    (@jim912)

    まず、$category->slug の前後にドットがありませんが、こちらは、フォーラム投稿時の記述ミスでしょうか。

    また、「3つあるタームのうち、1つしか取得出来ません。」とのことですが、これはカスタム投稿AAAの特定記事にタームが3つ設定してあるが、1つしか取得できないということでしょうか。

    トピック投稿者 sasasa24

    (@sasasa24)

    jim912様
    回答ありがとうございます。
    失礼いたしました。ドットは、私のミスでコードにはきちんと記述してあります。

    また、「3つあるタームのうち、1つしか取得出来ません。」とのことですが、これはカスタム投稿AAAの特定記事にタームが3つ設定してあるが、1つしか取得できないということでしょうか。

    説明が足りず申し訳ございませんでした。
    そうではなく、タクソノミーの中に3つ設定してあるタームのうち、一つしか取得できない、という意味です。
    また、それぞれのタームに属する投稿記事がないから表示されないのか?と思い、記事を投稿しましたが関係ありませんでした。
    何か教えて頂けたら大変助かります。

    Nora

    (@nora0123456789)

    失礼します。

    状況がよく分からず、やりとりを見て疑問に思ったのですが、つまり、特定のページに付与されたタームではなく、一般的に投稿タイプAAAのタクソノミーBBBのタームにある「C」「D」「E」を取得したいということでしょうか?

    その場合、最初のコードでは特定のページID($post->ID)に付与されたタームを取得するコードだからその特定ページに付与されたタームしか取得できないんじゃないかと思います。

    「get_terms( array( ‘taxonomy’ => ‘BBB’ ) )」を使ってみてはどうでしょうか?

    参照:https://developer.wordpress.org/reference/functions/get_terms/

    見当違いでしたら申し訳ありません。

    トピック投稿者 sasasa24

    (@sasasa24)

    Nora様
    はい、その通りです!
    Nora様の仰る通りの変更で出来ました。
    そして、うまく説明できずに申し訳ございませんでした。。
    お二方ともありがとうございました。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「カスタム投稿、タームを取得してボタンを生成したい」には新たに返信することはできません。