サポート » 使い方全般 » カテゴリーページで、そのカテゴリーの記事が持つタグを取得したい

  • 解決済 haruka0414

    (@haruka0414)


    タイトルの通りです。

    それぞれの記事のタグを取得するのではなく、
    そのカテゴリーに属する記事が持つタグのすべてを、重複することなく、一覧で表示したいと思っています。
    記事ごとに取得すると重複してしまうので困っています。

    カテゴリーA
    記事1(タグa,タグb)
    記事2(タグa,タグc)

    カテゴリーB
    記事3(タグa,タグd)
    記事4(タグc,タグe)

    このような構成の場合

    カテゴリーAのアーカイブページでは、タグa,b,c
    カテゴリーBのアーカイブページでは、タグa,c,d,e

    という感じで取得できないでしょうか?

    • このトピックはharuka0414が7年、 4ヶ月前に変更しました。
    • このトピックはharuka0414が7年、 4ヶ月前に変更しました。
5件の返信を表示中 - 1 - 5件目 (全5件中)
  • 複数の記事を指定して一度にタグを取得する、という便利な関数はないと思います。

    記事ごとに取得したタグを配列に並べて、配列の状態で重複をなくす、という方法はいかがでしょう。

    http://php.net/manual/ja/function.array-unique.php

    トピック投稿者 haruka0414

    (@haruka0414)

    ありがとうございます。

    アドバイスを受けて、挑戦してみたのですが、つまずいてしまったので、もう少しご教授いただけませんでしょうか。

    まず、記事ごとのタグを配列に格納しようと、下記のようにしてみました。

    <?php 
        $posttags = get_the_tags();
        $my_array = array();
        if ($posttags) {
          foreach($posttags as $tag) {
            $my_array[] = $tag->name ; 
          }
        }
     ?>

    これを

    <?php print_r($my_array); ?>

    で出力すると

    Array ( [0] => タグA [1] => タグB ) Array ( [0] => タグB [1] => タグC [2] => タグD )

    上記のように複数の配列ができました。

    しかし、複数の配列から、重複を除外することができずに困っています。(上記の例ですと「タグB」を除外したい)

    よろしくお願いします。

    • この返信は7年、 4ヶ月前にharuka0414が編集しました。

    以下のリンク先にある説明と例が参考になると思います。
    http://php.net/manual/ja/function.array-unique.php

    追記です:
    記事ごとのタグを $my_array に入れる前に $my_array を空にしていらっしゃいますが
    記事ごとのループを始める前の一度だけ $my_array を空にすれば
    ループが終わった後は $my_array に全部の記事のタグが入ります。

    トピック投稿者 haruka0414

    (@haruka0414)

    ありがとうございます!

    おかげさまで、意図した通りに表示できました。

    本当に助かりました。

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • トピック「カテゴリーページで、そのカテゴリーの記事が持つタグを取得したい」には新たに返信することはできません。