wp_get_post_tags()
は、指定した投稿のタグ情報を取得するためのテンプレートタグです。
機能の説明
wp_get_post_tags()
は、特定の投稿に紐づけられたタグを取得し、それを配列として返します。タグ情報は、WP_Term
オブジェクト形式で取得され、各タグの名前・スラッグ・IDなどの詳細にアクセスできます。この関数は、投稿のタグをリスト表示したいときや、カスタムのリンクを作りたいときに便利です。
シンプルなコード例
$tags = wp_get_post_tags( get_the_ID() );
if ( !empty( $tags ) ) {
foreach ( $tags as $tag ) {
echo '<span>' . esc_html( $tag->name ) . '</span>';
}
}
このコードでは、現在の投稿に付与されているタグを取得し、各タグの名前を表示しています。
使い方の解説
wp_get_post_tags()
は、$post_id
を渡すことでその投稿に付けられたすべてのタグを取得できます。さらに、取得するタグを条件で絞り込むために、オプションの引数も使用可能です。
引数
$post_id (int)
-
タグ情報を取得する対象の投稿ID。省略した場合、現在の投稿のIDが使用されます。
$args (array)
-
取得するタグを絞り込むためのオプション引数を配列で指定します。例えば、
fields
オプションで返り値を絞ることができます。get_terms()
関数と同様の構造を取ります。fields
(string) : 結果を特定のフィールドだけに絞ります。例えば、'ids'
にするとタグIDのみが返されます。
戻り値
array
-
取得したタグの情報を
WP_Term
オブジェクトの配列で返します。タグが付与されていない場合は空配列を返します。
wp_get_post_tags()
自体には特別なオプションがありませんが、$args
引数を使って取得するタグの条件を指定することが可能です。たとえば、タグの並び順やフィールドの指定が可能です。
オプション
fields
(string)-
指定したフィールドだけを返すオプションです。例えば、
'ids'
を指定すると、タグのIDのみが取得できます。
使用例
$tags = wp_get_post_tags( 123, array( 'orderby' => 'name', 'order' => 'ASC' ) );
if ( !empty( $tags ) ) {
echo '<ul>';
foreach ( $tags as $tag ) {
echo '<li><a href="' . get_tag_link( $tag->term_id ) . '">' . esc_html( $tag->name ) . '</a></li>';
}
echo '</ul>';
} else {
echo 'タグがありません。';
}
このコードでは、投稿IDが123
の投稿に付与されたタグを取得し、アルファベット順で並べて表示しています。各タグ名はそのタグのアーカイブページへのリンクとして表示されます。
一緒に使うことが多い関連タグ
get_the_category()
get_the_category()
は、特定の投稿に関連するカテゴリを取得します。カテゴリ情報を使って投稿を分類することが可能です。
$categories = get_the_category( get_the_ID() );
if ( !empty( $categories ) ) {
echo '<ul>';
foreach ( $categories as $category ) {
echo '<li>' . esc_html( $category->name ) . '</li>';
}
echo '</ul>';
}
このコードでは、現在の投稿に付与されたカテゴリを取得し、それぞれのカテゴリ名をリスト形式で表示しています。
追加情報を取得したい場合
タグに関連する追加情報を取得したい場合、get_term_meta()
を使ってタグに付随するカスタムメタデータを取得できます。
get_term_meta() で取得できるタグの情報
$tag_meta = get_term_meta( $tag_id, 'custom_meta_key', true );
echo 'タグのメタ情報: ' . esc_html( $tag_meta );
出力できる情報
- name: タグの名前
- slug: タグのスラッグ(URL フレンドリーな名前)
- term_group: タームグループID
- description: タグの説明文
get_term() でタグ情報を取得
$tag = get_term(5);
echo 'タグ名: ' . $tag->name;
echo 'スラッグ: ' . $tag->slug;
このコードでは、IDが5
のタグの情報を取得し、名前とスラッグを表示しています。
出力できる情報
name
: タグの名前slug
: タグのスラッグ(URLフレンドリーな名前)term_id
: タグのIDtaxonomy
: タグが属するタクソノミーの種類
想定されるトラブル
タグが取得できない場合
投稿にタグが付与されていない可能性があります。管理画面で該当投稿にタグを追加してください。
正しく並び替えができない場合
$args
引数のorderby
やorder
を見直して、適切な条件を設定してください。
fields
オプションが効かない
fields
オプションが効かない
Q&A
まとめ
wp_get_post_tags()
は、投稿に紐付けられたタグ情報を取得するための便利なテンプレートタグです。
タグ情報を取得することで、タグの一覧表示やアーカイブページへのリンクを作成するなど、ユーザー体験を向上させることができます。