LoginSignup
7
7

More than 5 years have passed since last update.

WordPress でタグクラウドを自作する方法

Posted at

最近あんまりみかけないですけど、タグクラウドを実装する方法です。

デフォルトのウィジェット「タグクラウド」では、タイトルと分類を設定できますね。

それ以外の部分だったりもうちょっと自由に設定したいというときには、自作した方が早いときがありますね。

タグクラウドの用の関数

wp_tag_cloud()

こちらが、タグクラウド用の関数です。

引数には配列で各オプションを指定できます。

リファレンスを見ますと以下を設定できる感じですね。

smallest
- 最小のタグの文字の大きさ(初期値 : 8)※単位はunitで
largest
- 最大のタグの文字の大きさ(初期値 : 22)※単位はunitで
unit
- 文字サイズの単位(初期値 : 'pt')※他に、px,em,%等
number
- 表示するタグの最大数です。(初期値は : 45)※0にした場合は全て
format
- タグクラウドのフォーマットを指定(初期値は : flat) flat : タグをseparatorパラメータで結合した文字列で list : wp-tag-cloudクラスを付与したuiタグで array : PHPの配列で
separator
- タグとタグの区切り文字(初期値は半角スペース)
orderby
- タグの並び基準(初期値はname)
name : タグ名 count : タグの数
order
- タグの並び順 ASC : 昇順 DESC : 降順 RAND : ランダム
exclude
- 除外するタグのID(term_id)をカンマ区切りで
include
- 対象にするタグのID(term_id)をカンマ区切りで
topic_count_text_callback
- リンクのタイトルを変更するためのコールバック
link
- ?
taxonomy
- 対象のタクソノミー
echo
- 1 : 出力をするか 0 : 出力しない(初期値 : 1)

使用例

ウィジェット外で利用する場合です。

任意の場所で以下のコードを実行します。

sidebar.php

<?php
/**
 * 「タグ名(タグ数)」のような形式の文字列を返します。
 * この関数は、functions.php に記述した方がいいですね。
 * 
 * @param string $count タグの数
 * @param object $tag タームのオブジェクト
 * @param array $args wp_tag_cloud()に渡した設定情報
 * @return string
 */
function simple_topic_count($count, $tag, $args) {
    return sprintf( '%s(%s)', $tag->name, $count );
}
$tags = wp_tag_cloud(array(
    'taxonomy' => 'original', // タクソノミー名
    'format' => 'array', // 自前で処理したいので、配列でうけとる
    'topic_count_text_callback' => 'simple_topic_count' // リンクのタイトルのシンプルにする関数を設定
));
?>
<ul>
<?php foreach( $tags as $tag ): ?>
<li><?php echo $tag; ?></li>
<?php endforeach; ?>
</ul>

こんな感じで、関数が準備するデータを最小限にし、テンプレート側でHTMLを調整できるようにしています。

7
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
7