WordPressで親カテゴリをたどってパンくずリストを作る
WordPressで子カテゴリや孫カテゴリ、子孫カテゴリから遡って親カテゴリまでをテキストリンクとして出力するテーマのカスタマイズです。
WordPressで親カテゴリをたどってパンくずリストを作る
WordPressのカテゴライズでは、親子関係を作ることが出来ます。子カテゴリのみを選択したときに、一緒に親カテゴリも表示したいケースがあります。特にパンくずリストなんかを作るときには必要ですね、工程としては以下の様になります
工程
- 現在の記事に設定されているカテゴリを取得する
- そのカテゴリのリストから、カテゴリのIDを取得する
- カテゴリIDから一番上の先祖にあたる親カテゴリまでリンクテキストで出力する
現在の記事に設定されているカテゴリを取得する
今回は前提条件として、1つのカテゴリのみ選択されてい状況です、複数のカテゴリが選択されていた場合は最初に該当するカテゴリが対象になります。
カテゴリのリストを取得する
$category_id = get_the_category();
get_the_category() で、投稿ページで設定されているカテゴリを配列とオブジェクトで返します。それを$category_idに格納します。
カテゴリリストから、1番最初のカテゴリのIDを取得する
次に、$category_idに格納したカテゴリリストから一番最初にあたるカテゴリのIDを取り出します。一つだけ選択している場合は、それになります。
IDの取得
$category_id = $category_id[0]->cat_ID;
$category_idの0番目=一番最初の配列から、cat_IDをオブジェクト形式から取得します、それを再び$category_idに入れ直しますので、ここで$category_idにはカテゴリのIDの数字が入ります。
カテゴリのIDから先祖へとた辿ってリンクテキストとして出力する
上記の二つでカテゴリのIDを取得できましたので、そのIDを元に先祖へとたどってリンクテキストを出力します。
echo get_category_parents($category_id,true," ");
get_category_parents() という関数が予めWordpressには準備されているので、比較的簡単に先祖までのカテゴをたどる事が出来ます get_categor_parents(“値1″,”値2″,”値3”)にはそれぞれ決まったものを入れます、順番にカテゴリのID、リンク形式で出力するか(trueはする、デフォルトではfalseでしない)、セパレート(出力するリンクの間につけるもの、デフォルトでは/)となっている
まとめると
- 値1 = カテゴリIDを入れる
- 値2 = リンク付きで出力するかを入れる(true 又は flase)、デフォルトではテキストで出力される
- 値3 = 出力するカテゴリの間に出力されるもの、デフォルトでは/となっている。任意の文字列を入れることが出来る
使用例
<?php //親カテゴリ類の取得 $category_id = get_the_category(); $category_id = $category_id[0]->cat_ID; $categorys = get_category_parents($category_id,true," "); ?> <?php echo $categorys; ?>
$categorys にリンク付きカテゴリを入れておき、好きな場所で echo で出力するようにする。複数箇所で出力したい場合(記事の上部と下部)には、全体を書き直す必要はなく、処理も1回で複数出力出来、PHPのコードとHTMLを出来るだけ分離したほうが見やすい。
あとはセパレート部分を矢印にしてパンくずリストとして使ってもいいし、セパレート部分をカンマにしてカテゴリのリストのように使っても良い
COMMENT