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>

WordPressテーマ『HIGHLAND』公開しました

WordPressテーマ『HIGHLAND』を公開しました

このブログで紹介しているカスタマイズを、これでもかと盛り込んだ高性能なテーマになっております。商用・非商用問わず無料、是非ご利用ください。

柴田竹思

柴田竹思

日本&ベトナム二拠点生活中のWeb系フリーランス。最近は育児6:仕事4のバランスで生活してます。これでもかってくらい奥さんの尻に敷かれてる座布団系男子です。

プロフィールはこちら