タグ別記事一覧で表示中のタグのタグ名とタグIDを取得する方法

@niketcha

以前カテゴリ別記事一覧に関連タグを表示する方法という記事を書いたのですが、タグ別記事一覧(タグアーカイブ)にも関連タグリストを表示させることにしました。

同じようなコードにするには、表示中のタグのタグIDが必要になります。そこでタグ別記事一覧でタグIDを取得する方法を調べました。

Sponsored Link

タグID取得方法

下記のコードでタグIDが取得できます。

<?php
$tag_name=single_tag_title("", false);
$tag_properties=get_term_by('name', $tag_name, 'post_tag');
$tag_id= get_objects_in_term( $tag_properties->term_id, 'post_tag' );
?>

single_tag_titleとは

タグアーカイブで使用できる関数です。現在のページのタイトルを表示するための関数ですが、引数を指定することでタグ名を取得できます。

第一引数はタグタイトルの前に出力するテキストです。今回は不要なので空欄を渡します。

第二引数は「TRUE(初期値):タグタイトルを表示する、FALSE:PHPで扱えるように値を返す」です。つまりTRUEを指定するとタイトルがechoされ、FALSEではechoされずに変数に格納することができます。

get_term_byとは

条件を指定してターム情報を取得する関数です。この関数を使って、タグ名からタグIDを取得します。

第一引数は、第二引数の値が何を示すかを指定します。’id’、’slug’、’name’、’term_taxonomy_id’から選択します。

第三引数はタクソノミー名です。

今回のソースでは第一引数が「name」、第三引数が「post_tag」なので、第二引数の値がタグ名として扱われます。

get_objects_in_termについて

get_objects_in_termについてはカテゴリ別記事一覧に関連タグを表示する方法を参照してください。この記事の中で、関連タグリストを表示する方法を説明しています。

その際、そのまま出力すると表示中のタグまで出力されるので、$tag_nameと比較してcontinue;(ループ内の以降の処理を飛ばして次の配列を処理する)をするといいと思います。

-ウェブサイト構築, word press

コメントを残す

お名前もメールも入力は任意です。お気軽に指摘や質問などしていただけると嬉しいです。

Gravatarに登録すると、お好きな画像をアバターに設定できます。

Copyright© ニケッチャニッキ , 2017-2018 All Rights Reserved.