single.phpでパンくずリスト
single.phpで、
(prefix) » カテゴリー1 » カテゴリー2 » カテゴリー3 » 件名
というようなパンくずを出したい。
パンくずリスト作成のために、Breadcrumb Navigation XTを使用。
↓
カテゴリーの階層が2階層以上で、最下層のカテゴリーをあてた投稿記事では、
$mybreadcrumb->opt['singleblogpost_category_display'] = true;
としても、single.phpでは、最下層のカテゴリーへのリンクしか出ない。
(prefix) » カテゴリー3 » 件名
という具合。
category.phpでは、階層構造がすべて表示される。
↓
//Display a prefix(prefixの記述)
のあとに、
if(is_single()) {
echo(get_category_parents($cat, true, " » "));
}
を追加。
separatorだけ出てくる。
(prefix) » » カテゴリー3 » 件名
is_singleをはずした場合、category.phpでは親カテゴリーも出てくる。
↓
$catの部分に実際のカテゴリーidを入れたところ、そのカテゴリ名を含め、すべての親カテゴリーが表示。
(prefix) カテゴリー1 » カテゴリー2 » カテゴリー3 » » カテゴリー3 » 件名
↓
$cat_now = get_the_category(); $cat_now = $cat_now[0];
で、現在の記事のカテゴリー情報を取得し、
$parent_id = $cat_now->category_parent;
で親カテゴリーの情報を取得。
↓
echo (get_category_parents($parent_id, true, " » "));
で表示された。
↓
が、get_category_parentsでは、separatorが後ろにつくのに対し、
Breadcrumb Navigation XTでは、separatorが前につくので、
prefixとのつなぎ目にはseparatorが出ず、
Breadcrumb Navigation XTのつなぎ目に、separetorが2つ出てしまう。
(prefix)カテゴリー1 » カテゴリー2 » » カテゴリー3 » 件名
↓
single.phpでは、Breadcrumb Navigation XTを使わないことにする。
<?php if (class_exists('breadcrumb_navigation_xt')) { //Display a prefix //(prefixの記述) if(is_single()) { $cat_now = get_the_category(); $cat_now = $cat_now[0]; echo("» ".get_category_parents($cat_now, true, " » ")); single_post_title(); } else { //new bredcrumb object ... } } ?>
参考にさせていただいたサイト:
ISプランニング | 個別記事のテンプレート完成