WordPressのループ外でカテゴリーページのURLを取得する方法

2017.11.27 WordPress
WordPressのループ外でカテゴリーページのURLを取得する方法

WordPressシングルページでカテゴリーページへのリンクを取得する場合、ループ内であればthe_categoryというテンプレートタグを使えば大丈夫です。

しかし、レイアウト上の都合など何らかの理由で、ループ外でカテゴリーページへリンクしたい場合には、以下のような形でカテゴリーページURLを取得する必要があります。

<?php
$cat = get_the_category(); //現在のページのカテゴリ―を取得
$cat_id = $cat[0]->cat_ID; //取得したカテゴリーのIDを取り出す
$cat_link = get_category_link($cat_id); //取り出したカテゴリーIDをget_category_linkに指定
echo $cat_link; //指定したカテゴリーページのURLを出力
?>

get_the_categoryとget_the_category

使用しているのはget_the_categoryとget_category_linkという2つのテンプレートタグです。

get_the_categoryは現在のシングルページが属するカテゴリーの配列を返すもので、投稿IDを渡すことでループ外でも使うことができます。

あまりないかもしれませんが、ある投稿(シングルページ)で別の投稿IDを渡せば、その別の投稿の属するカテゴリーURLを取得することができるようになっています。

get_the_categoryは、カテゴリーIDを指定することでそのカテゴリーのURLを返すテンプレートタグです。

上で紹介したコードでは、まずget_the_categoryで現在のページが属するカテゴリーの情報を取得し、そこからカテゴリーIDを取り出す。次に取り出したカテゴリーIDをget_category_linkで指定することでカテゴリーページURLを出力しているというような流れです。

出力するのはあくまでもURLだけですので、実際リンクするときには下記のような感じになります。

<a href="&lt;?php
$cat = get_the_category(); //現在のページのカテゴリ―を取得
$cat_id = $cat[0]-&gt;cat_ID; //取得したカテゴリーのIDを取り出す
$cat_link = get_category_link($cat_id); //取り出したカテゴリーIDをget_category_linkに指定
echo $cat_link; //指定したカテゴリーページのURLを出力
?&gt;"></a>
柴田竹思

柴田竹思

ベトナム在住Web系フリーランス。有名企業から個人事業まで、いろんなウェブサイトを制作してます。これまで400弱くらい作りました。一年中WordPressばっかりいじってます。

プロフィールはこちら