016
投稿に付けたタグを配列形式で取得する
Library
投稿に付けたタグを取得するには、get_the_tags()を使います。戻ってくる値はタグの配列です。
| 用例 |
|
|---|---|
| 関連 | |
| Codex |
投稿に付けたタグを配列で取得する
投稿に付けたタグを取得するには、次のようにします。
<?php $tags = get_the_tags(); ?>この関数はget_the_category()と同様、引数に投稿のIDを渡せば、WordPressループの外でも使うことができます。IDを指定しない場合は、現在の投稿が使われれます。
この関数はWP Termオブジェクトの配列を返します。この点もget_the_category()と同じです。試しにログで出力すると、次のような結果が得られます。
array (
0 =>
WP_Term::__set_state(array(
'term_id' => 8,
'name' => '夜',
'slug' => '%e5%a4%9c',
'term_group' => 0,
'term_taxonomy_id' => 8,
'taxonomy' => 'post_tag',
'description' => '',
'parent' => 0,
'count' => 1,
'filter' => 'raw',
)),
1 =>
WP_Term::__set_state(array(
'term_id' => 9,
'name' => '快晴',
'slug' => '%e5%bf%ab%e6%99%b4',
'term_group' => 0,
'term_taxonomy_id' => 9,
'taxonomy' => 'post_tag',
'description' => '',
'parent' => 0,
'count' => 1,
'filter' => 'raw',
)),
)4行目のterm_id(タグのID)、5行目のname(タグの名前)、12行目のcount(そのタグが付けられている投稿の数)をよく使用します。get_the_category()と比較すると、タグのほうが項目は少ないですが、内容は同じであることに気づくと思います。
タグの配列を用いた例
get_the_category()の例とあまり変わりませんが、the_tags()では実現できない、タグの配列を使用した例を示してみます。
タグの名前だけを表示する
<?php
$tags = get_the_tags();
foreach ( $tags as $tag ) {
echo '<span>' . $tag->name . '</span>';
}
?>出力すると、タグの名前がスペースなしで表示されます。間をあけるにはspanにクラスを付けてcssで調整してください。もしセパレータを入れたい場合は、次のようにします。
<?php
$html = '';
$separator = '<span> / </span>';
$tags = get_the_tags();
foreach ( $tags as $tag ) {
$html .= '<span>' . $tag->name . '</span>' . $separator;
}
$html = rtrim( $html, $separator );
echo $html;
?>3行目を変更すれば区切り文字を変更することができます。
投稿に付けたタグのリンクを1つだけ表示する
the_tags()ではすべてのタグを表示しますが、1つだけ表示したい場合は次のようにします。
<?php
$tags = get_the_tags();
if ( !empty( $tags ) ) {
printf(
'<a href="%s">%s</a>',
get_tag_link( $tags[0]->term_id ),
$tags[0]->name
);
}
?>投稿にはタグが付けられていない場合もありますので、上の3行目のようにタグの存在確認を忘れないようにしてください。
なお、6行目のget_the_tag_link()はタグのIDを渡すと、そのタグのアーカイブページへのURLを返してくれる関数です。
Comment