パンくずの関数やプラグインなんて山ほどあるし、複数カテゴリ対応のコードも見かけるけど、自分の希望の形になるものがなかったので作ってみた。
複数カテゴリに対応させたもので、楽天のようにずらずら出てくるあれ。
ホーム > カテゴリ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>></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>></li>'; } $str. = '<li><a href="'. home_url() .'/?cat='. attribute_escape($cat->cat_ID) .'">'. $cat->cat_name .'</a></li>'; $str. = '<li>></li>'; $str. = '<li>'. the_title() .'</li>'; $str. = '</ul>'; } echo $str; }
※/?cat=の部分は、パーマリンク設定によって変更する必要あり。これはデフォルトの設定の場合。
テンプレートに記述↓
<?php echo bcNavi(); ?>
これの難点は、3階層目までしか対応していないこと。
ホーム > カテゴリ1 > カテゴリ2 > 記事タイトル
ここまでが限界。将来的にカテゴリがどんどん増えるページにはNG、祖先カテゴリが表示されなくなってしまう。
自分はとりあえず3階層目まであれば十分だったので作り込んではいないのだけど、いずれ完成はさせた方がいい……のかな。
でも、4階層まであるようなページはユーザビリティの面でどうかと思うので、気が向いたらやるということで(逃)。