複数カテゴリ対応のパンくず

 パンくずの関数やプラグインなんて山ほどあるし、複数カテゴリ対応のコードも見かけるけど、自分の希望の形になるものがなかったので作ってみた。

 複数カテゴリに対応させたもので、楽天のようにずらずら出てくるあれ。

 

 ホーム > カテゴリ1 > 記事タイトル

 ホーム > カテゴリ2 > 記事タイトル

 

 こんなやつ。投稿時にチェックを入れたカテゴリを全て表示する。

 2パターンあるけど、とりあえずノーマルな形のものをぺたり。

 

 function.phpに記述↓

function bcNavi() {
    $category = get_the_category();
    foreach($category as $cat){
        $str. = '<ul class="bcNavi clearfix">';
        $str. = '<li><a href="'. home_url() .'">HOME</a></li>';
        $str. = '<li>&gt;</li>';
        if ($cat->parent) {
            $parent = get_category($cat->parent);
            $str. = '<li><a href="'. home_url() .'/?cat='. attribute_escape($parent->cat_ID) .'">'.$parent->cat_name .'</a></li>';
            $str. = '<li>&gt;</li>';
        }
        $str. = '<li><a href="'. home_url() .'/?cat='. attribute_escape($cat->cat_ID) .'">'. $cat->cat_name .'</a></li>';
        $str. = '<li>&gt;</li>';
        $str. = '<li>'. the_title() .'</li>';
        $str. = '</ul>';
    }
    echo $str;
}

※/?cat=の部分は、パーマリンク設定によって変更する必要あり。これはデフォルトの設定の場合。

 

 テンプレートに記述↓

<?php echo bcNavi(); ?>

 

 これの難点は、3階層目までしか対応していないこと。

 

 ホーム > カテゴリ1 > カテゴリ2 > 記事タイトル

 

 ここまでが限界。将来的にカテゴリがどんどん増えるページにはNG、祖先カテゴリが表示されなくなってしまう。

 

 自分はとりあえず3階層目まであれば十分だったので作り込んではいないのだけど、いずれ完成はさせた方がいい……のかな。

 でも、4階層まであるようなページはユーザビリティの面でどうかと思うので、気が向いたらやるということで(逃)。

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください