WordPressシングルページでカテゴリーページへのリンクを取得する場合、ループ内であればthe_categoryというテンプレートタグを使えば大丈夫です。
しかしループ外でカテゴリーページへリンクしたい場合には、以下のような形でカテゴリーページURLを取得する必要があります。
- PHP
<?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_category_link
使用しているのはget_the_categoryとget_category_linkという2つのテンプレートタグです。
get_the_categoryは現在のシングルページが属するカテゴリーの配列を返すもので、投稿IDを渡すことでループ外でも使うことができます。
あまりないかもしれませんが、ある投稿(シングルページ)で別の投稿IDを渡せば、その別の投稿の属するカテゴリーURLを取得することができるようになっています。
get_category_linkは、カテゴリーIDを指定することでそのカテゴリーのURLを返すテンプレートタグです。
上で紹介したコードでは、まずget_the_categoryで現在のページが属するカテゴリーの情報を取得し、そこからカテゴリーIDを取り出す。
次に取り出したカテゴリーIDをget_category_linkで指定することでカテゴリーページURLを出力しているというような流れです。
出力するのはあくまでもURLだけですので、実際リンクするときには下記のような感じになります。
- PHP
<a href="<?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を出力 ?>"></a>