大輔べ

登山・写真・チェンマイ・台湾が好きな「たしろだいすけ」のブログ

WordPressでタグクラウドではないタグ一覧を表示する方法

8月はWordPress強化月間として、WordPressに関する記事を多く書こうかなと考えている「たしろだいすけ([my_twitter])」でございます。


WordPressで使用しているタグの一覧を表示することにしました。

どのようにすればいいのか調べたところ、まずはwp_tag_cloudというテンプレートタグを使えばタグを表示できることがわかりました。ですが、これで表示した場合はタグクラウド(使用回数により大きさが異なる)という形式で表示されるので、ちょっと今回求めている形とは違います。

今回は単純にタグの一覧を表示したいのです。

もう少し調べ解決しました。どうやらget_terms関数を使えばよいようです。

get_terms関数でタグ一覧を表示する

表示する内容

  • タグ名
  • タグのURL
  • 投稿数
<ul>
<?php
  $tags = get_terms('post_tag', 'hide_empty=1');
  foreach($tags as $value):
?>
<li><a href="<?php echo get_tag_link($value->term_id); ?>"><?php echo $value->name; ?> (<?php echo $value->count; ?>)</a></li>
<?php
  endforeach;
?>
</ul>

get_terms関数にタクソノミー名(post_tag)と検索条件(hide_empty=1)を渡し、$tagsへ値を入れます。あとはその値を取り出し、表示するだけ。

get_terms関数の戻り値にはタグのURLはないので、それはget_tag_link関数で表示しています。

以上で、タグクラウドではないタグ一覧を表示することができました。

参考サイト

  • こんにちは。

    wordpressタグ一覧表示の記事参考にさせてもらいました。
    ありがとうございます。

    $value->term_taxonomy_id

    なんですが、これだとなぜかリンク先がずれてしまったので

    $value->term_id

    としてみたところ改善されました。
    補足まで。

    • コメントありがとうございます。

      なんでずれちゃったんですかね〜。
      このブログでは$value->term_taxonomy_idで問題なく動作しているのに…。

      • どうも。
        そうなんですね。
        WPのバージョンで違うというよりはテーマ内の構築によって違うという内部的な問題のような気もしました。また勉強します。
        ではでは。

        • このブログでもずれたので、term_taxonomy_idからterm_idに変更しました!

  • yosuo

    こんにちは。

    wordpressタグ一覧表示の記事参考にさせてもらいました。
    ありがとうございます。

    $value->term_taxonomy_id

    なんですが、これだとなぜかリンク先がずれてしまったので

    $value->term_id

    としてみたところ改善されました。
    補足まで。

    • コメントありがとうございます。

      なんでずれちゃったんですかね〜。
      このブログでは$value->term_taxonomy_idで問題なく動作しているのに…。

      • yosuo

        どうも。
        そうなんですね。
        WPのバージョンで違うというよりはテーマ内の構築によって違うという内部的な問題のような気もしました。また勉強します。
        ではでは。

        • このブログでもずれたので、term_taxonomy_idからterm_idに変更しました!

  • akiri

    こんにちは。
    投稿数入りのタグ一覧ページを作る方法を探して、このサイトに辿り着きました。

    上記のプログラムで思った通りに表示されるのですが、タグの順番を変えたいのです。そういうことはできるしょうか? ”orderby=name” などで順番を変えられるようですが、どうにもやり方が分かりません…

    もしやり方をご存知でしたら、教えて下さい。
    「簡単に出来る方法がありそうだ」と思い質問させて頂きましたが、上記プログラムの大幅な変更が必要なような手間がかかるのであれば、この質問は無視して頂いて結構です^^

  • akiri

    こんにちは。
    投稿数入りのタグ一覧ページを作る方法を探して、このサイトに辿り着きました。

    上記のプログラムで思った通りに表示されるのですが、タグの順番を変えたいのです。そういうことはできるしょうか? ”orderby=name” などで順番を変えられるようですが、どうにもやり方が分かりません…

    もしやり方をご存知でしたら、教えて下さい。
    「簡単に出来る方法がありそうだ」と思い質問させて頂きましたが、上記プログラムの大幅な変更が必要なような手間がかかるのであれば、この質問は無視して頂いて結構です^^

  • akiri

    上記の hide_empty は正しく表示されるのですが、orderby を打ち込んでも反映されないようです。WordPress のバグかな。

    • コメントありがとうございます。
      orderbyが反映されないとのことですが、引数はどうやってつないでいますか?
      get_terms(‘post_tag’, ‘hide_empty=1&orderby=count’)
      文字列であれば、こんな感じで、&でつなげば動作すると思いますが。

      使用できる引数はこちらを参考にしてください。
      http://wpdocs.osdn.jp/関数リファレンス/get_terms

  • akiri

    上記の hide_empty は正しく表示されるのですが、orderby を打ち込んでも反映されないようです。WordPress のバグかな。

    • コメントありがとうございます。
      orderbyが反映されないとのことですが、引数はどうやってつないでいますか?
      get_terms(‘post_tag’, ‘hide_empty=1&orderby=count’)
      文字列であれば、こんな感じで、&でつなげば動作すると思いますが。

      使用できる引数はこちらを参考にしてください。
      http://wpdocs.osdn.jp/関数リファレンス/get_terms