WordPressでタグの名前からURLを取得する方法

WordPressのタグアーカイブで、タグ名を表示するのは簡単だったのですが、URLを取得するのにちょっとはまったので、その方法を紹介します。

使用する関数一覧

single_tag_title()
現在のタグアーカイブページのタグ名を表示/取得
Function Reference/single tag title « WordPress Codex
get_term_by()
カテゴリーやタグの情報を取得する
Function Reference/get term by « WordPress Codex
get_tag_link()
指定したタグIDの正しいURLをPHPの値として返す
Function Reference/get tag link « WordPress Codex

タグアーカイブでURLを取得する

コード

<?php
  $name = single_tag_title('', false);
  $tag = get_term_by('name', $name, 'post_tag');
  $link = get_tag_link($tag->term_id);
?>

解説

まず、single_tag_title()でタグの名前を取得します。このとき、第二パラーメータにfalseを忘れずに。忘れるとタグの名前は表示されてしまいます。

次に、get_term_by()の第一パラメータにフィールド名が名前であることを示す「name」を、第二パラメータに最初に取得したタグの名前を、そして第三パラメータにタクソノミー名がタグであることを示す「post_tag」を指定し、タグの情報を取得します。

最後に、get_tag_link()のパラメータに、取得したタグの情報からタグのIDを指定して、URLを取得します。

あとはechoするなり、なんなりご自由にどうぞ。

【おまけ】タグアーカイブでタグ名を表示/取得する方法

タグ名を表示したい箇所に、下記コードを記述すれば、タグ名が表示されます。

<?php single_tag_title(); ?>

また、タグ名を表示せずに、PHPで使用できる値として返したい場合は、第二パラメータにfalseを指定し、記述します。

<?php $cat_title = single_tag_title('', false); ?>