カテゴリのリンクを作りたい。カテゴリIDを使ってURLを生成したい。

そんな疑問にお答えします。
この記事ではget_category_linkの使い方を解説しています。記事の前半では基本的な使い方やパラメータなどの解説を行い、後半部分では実際に取得するためのサンプルコードを記述しています。
このページの目次
get_category_linkの使い方
get_category_linkはパラメーターにカテゴリIDを指定してURLを取得するシンプルなテンプレートタグです。
get_category_linkの記述方法
記述方法は簡単でパラメーターに整数でカテゴリIDを指定します。
<?php get_category_link( $category_id ); ?>
パラメーターの解説
パラメーター名 | データ型 | 解説 |
---|---|---|
category_id | 整数 | リンクを取得するカテゴリーID |
戻り値
戻り値は文字列で以下のような形になります。
http://wp-fan.com/category/rental-server/
指定のカテゴリURLを取得する
パラメーターには整数を指定するので実際に記述すると以下のような形になります。
<?php echo esc_url( get_category_link( 55 ) ); ?>
esc_urlは無害化するためのタグです。僕のサイトの場合、カテゴリーID55はレンタルサーバーというカテゴリになります。
HTML出力例
http://wp-fan.com/category/rental-server/
画面表示例
http://wp-fan.com/category/rental-server/
get_categoriesと合わせて使う
テンプレートタグget_categoriesと合わせて使うことで指定したカテゴリーをリンク付きで出力できます。
<?php
$args = array();
$categories = get_categories( $args );
foreach ( $categories as $category ) {
echo '<a href="' . get_category_link( $category->term_id ) . '">' . $category->name . '</a><br/>';
}
?>
get_categoriesの解説はこちら
HTML出力内容
<a href="http://wp-fan.com/category/hokkaido/">Hokkaido</a><br/>
<a href="http://wp-fan.com/category/tips/">TIPS</a><br/>
<a href="http://wp-fan.com/category/uncategorized/">Uncategorized</a><br/>
<a href="http://wp-fan.com/category/rental-server/">レンタルサーバー</a><br/>
<a href="http://wp-fan.com/category/%e5%a4%a7%e5%88%86%e7%9c%8c/">大分県</a><br/>
<a href="http://wp-fan.com/category/%e8%a6%aa%e3%82%ab%e3%83%86%e3%82%b4%e3%83%aa/%e5%ad%90%e3%82%ab%e3%83%86%e3%82%b4%e3%83%aa/">子カテゴリ</a><br/>
<a href="http://wp-fan.com/category/%e8%8c%a8%e5%9f%8e%e7%9c%8c/">茨城県</a><br/>
<a href="http://wp-fan.com/category/%e8%a6%aa%e3%82%ab%e3%83%86%e3%82%b4%e3%83%aa/">親カテゴリ</a><br/>
<a href="http://wp-fan.com/category/%e9%95%b7%e5%b4%8e%e7%9c%8c/">長崎県</a><br/>
画面表示例
HokkaidoTIPS
Uncategorized
レンタルサーバー
大分県
子カテゴリ
茨城県
親カテゴリ
長崎県
リンク先は#に変更してあります。
まとめ
get_category_linkの使い方を解説しました。
パラメーターもシンプルなので簡単にカテゴリーのURLが取得できます。get_category_link単体で使う機会はなかなか無いかもしれませんが、get_categoriesなど別のテンプレートタグと一緒に使う機会が多いかと思います。