うりのWordPressあれこれ

WordPressやphp に関することをメモ...

WordPress-タグ情報取得・表示方法まとめ

記事に付けられたタグの一覧を表示する

(single.php

<?php the_tags(); ?>

先頭に Tags:という文字が付き、タグが複数あるときは「,」で区切り表示します。
結果
Tags:A,B,C

文字の変更・区切る文字の変更

<?php the_tags('この記事についているタグ: ',' > '); ?>

結果
この記事についているタグ:A>B>C

タグをリストで表示

先頭の「 Tags:」をなくし、リストで表示する場合

<?php the_tags('<ul><li>','</li><li>','</li></ul>');?>

結果
・A
・B
・C

タグアーカイブページで現在のタグ名を表示

タグアーカイブページ(tag.php)でタグ名を表示する場合は、single_tag_title()を使います。
このタグは、記事ページ(single.php)でも使えますよ。

<?php single_tag_title(); ?>

これを使えば、タグによって分岐して表示することもできます。

<?php if( single_tag_title() == 'タグA'): ?>
タグAの場合のみ表示されます
<?php else: ?>
タグA以外の場合に表示されます
<?php endif; ?>

wp_tag_cloud() を使ってタグを表示

wp_tag_cloud()は、「タグクラウド」と呼ばれるタグの一覧を表示するテンプレートタグです。「the_tags」とは異なり、登録してある全てのタグを表示します。

よくサイドバーに文字の大きさが異なるワードが並んでいますよね?アレがこのタグクラウドです。
文字のサイズは、各タグが投稿に付けられた回数が多いほど大きくなります。

このタグクラウドを使うことで記事ページでなくても指定のタグをのみ表示することができます。

<?php $args = array(
	'smallest'                  => 8, 
	'largest'                   => 22,
	'unit'                      => 'pt', 
	'number'                    => 45,  
	'format'                    => 'flat',
	'separator'                 => "\n",
	'orderby'                   => 'name', 
	'order'                     => 'ASC',
	'exclude'                   => null, 
	'include'                   => null, 
	'link'                      => 'view', 
	'taxonomy'                  => 'post_tag', 
); ?>
<?php wp_tag_cloud( $args ); ?>


指定できるパラメーターは
smallest
 最小使用数のタグのフォントの大きさを指定します。pxやemは書かないでください。
largest
 最大使用数のタグのフォントの大きさを指定します。pxやemは書かないでください。
unit
 「smallest」「largest」の単位をここで指定します。pt,px,em,% などです。
number
 クラウドに表示するタグの数。0を指定するとすべてのタグを表示します。
format
 クラウドのフォーマットを指定します。
flat  タグをホワイトスペースで区切る。
・list  タグをリスト(li)で表示。
・array タグを配列に格納し、phpで扱えるように配列のまま返す。
例えば、

<?php $tag = wp_tag_cloud( 'format=array' ); ?>

と$tagに配列で入れることでforeachなどのループ内に使えます。

separator
 タグの間に表示するテキストやスペースを指定できます。

orderby
タグの表示順を指定します。
・name   タグ名順で表示。
・count   使用数順で表示。

order
タグのソート順を指定します。
ASC  昇順(初期値)
・DESC 降順
・RAND ランダム(WordPress 2.5 以上で使えます)

exclude
除外するタグIDを指定します。

include
表示させるタグIDを指定します。

link
特定のタグを編集できるように設定
・view 閲覧(初期値)
・edit 編集
'edit'にすると、タグのリンクをクリックしたときに管理画面のタグ編集ページへ移動します。

taxonomy
クラウドの生成に使うタクソノミー、またはタクソノミーの配列
・post_tag   投稿タグ
・category   投稿カテゴリー
・link_category リンクのカテゴリー
taxonomy 引数を使ってカテゴリーのクラウドを表示しることもできます。

<?php wp_tag_cloud( array( 'taxonomy' => 'category' ) ); ?>


特定のタグのリンク付きリストを表示する場合

リストにしたときに、タグの使用件数によって文字の大きさを変えたくないので、「smallest」「largest」に同じ値を入れてあげます。
そして表示したいタグIDを'include'で指定します。

<?php $args = array(
	'smallest'                  => 14, 
	'largest'                   => 14,
	'unit'                      => 'pt', 
	'number'                    => 0,  
	'format'                    => 'list',
	'include'                   => 3, 
); ?>
<?php wp_tag_cloud( $args ); ?>

複数のタグIDを指定してリンク付きタグ一覧を表示する場合

複数タグIDを指定した場合は、numberの数字を配列に入れてあげればOKです。

<?php $args = array(
	'smallest'                  => 14, 
	'largest'                   => 14,
	'unit'                      => 'pt', 
	'number'                    => 0,  
	'format'                    => 'list',
	'include'                   =>  array(3,6,9), 
); ?>
<?php wp_tag_cloud( $args ); ?>

タグ情報を取得する

画像を入れるなど、もっと自由に書きたい場合は、get tags()を使用します。
get tags()は投稿タグの名前やslugを取得することができます。

<?php $tags_array = get_tags( ); ?>

また、パラメーターを指定することができます。上記に書いたwp_tag_cloud()とあまり変わらないです。
order
タグの並び順。
hide_empty
使用件数が 0 のタグを除くかどうか。
・true - 除く(初期値)
・false - 含める
exclude
一覧から除くタグ ID を指定。複数指定する場合は、コンマまたはスペース区切りで指定。
include
一覧に含めるタグ ID を指定。コンマまたはスペース区切りで指定。

number
取得するタグの数を指定。
offset
取得するタグのクエリ順でのオフセット。
注:タグ一覧の先頭から、指定した数をスキップします。
fields
戻り値のタイプ。
・all - タグオブジェクトの配列。(初期値)
・ids - タグ ID(整数)の配列。
・names - タグ名(文字列)の配列。
slug
取得するタグのスラッグ。

search
取得するタグ名に含まれる文字列。大文字/小文字を区別しない。
name__like
取得するタグ名に含まれる文字列。大文字/小文字を区別する。
description__like
取得するタグの「説明」に含まれる文字列。大文字/小文字を区別しない。

複数のタグIDを指定して情報取得し一覧で表示

複数のIDを指定する場合は、arrayに入れてあげます。

<?php
$tags = get_tags('include=array(15,16,17)');
if ($tags): foreach($tags as $tag):
?>
	<?php $tag_link = get_tag_link($tag->term_id); ?>
	<li>
		<a href='<?php echo $tag_link?>'>
		<?php echo $tag->name ?>
		</a>
	</li>
<?php endforeach; endif; ?>

$tag_link(タグID)でタグのurlを取得することができるタグです。

複数のパラメーターを指定する場合は、

<?php
$tags_list =array(
'include'    =>  array(15,16,17),
'hide_empty' => 'false ',
'number'     => '3'
);
$tags = get_tags( $tags_list );

と変数に入れて指定することもできます。