WordPressで親カテゴリをたどってパンくずリストを作る

wordpress
このエントリーをはてなブックマークに追加
PR

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を出来るだけ分離したほうが見やすい。

あとはセパレート部分を矢印にしてパンくずリストとして使ってもいいし、セパレート部分をカンマにしてカテゴリのリストのように使っても良い

PR

COMMENT

コメントを残す

PR

9ineBBの管理人が運営するサイト

WDG WEB DESIGN GALLERY ウェブデザインギャラリー CC0 PHOTO 無料で使える高画質な写真をダウンロード、クレジット表記、リンク不要

9ineBBの最新情報をチェック・購読

Twitter Facebook Google+ Feedly RSS

どこをクリックしてもこの表示を消せます
(3日後以降に再度表示されます)