2014年07月04日(Fri)

パンくずリスト(breadcrumbs list/ブレッドクラム)をプラグインを使わずに表示させる方法
少しでもSEO効果を高める為に、「パンくずリスト(breadcrumbs list/ブレッドクラム)」を設置する事にしました。 プラグインで対応できればと思い探してみると、やはり複数存在し中でも「Breadcrumb NavXT」という有能そうなプラグインを見つけたので検討する事にしました。
Breadcrumb NavXT を検討した結果
早速、「Breadcrumb NavXT」をインストールしてみると、参考にしたサイトは、各項目が日本語表記だったのに対して自分の場合は何故か各項目が英語表記でした… インストールするものを間違えたのかと思い再検索すると、どうやら日本語版もある様ですが、日本語環境で使用すると問題が起こるとか起こらないとか… だんだん、調べるのが面倒になり断念し自分で作る事にしました。 頑張れば英語表記でも出来そうですけど項目が多すぎて…
パンくずリスト(breadcrumbs list)を作る
カテゴリー、タグ、日付、検索結果、シングルページ(個別投稿)、404ページのパンくずリストのコードを「functions.php」に関数としてまとめてみました。
functions.php
//ページ番号の切替
function paged_change($paged, $link, $name){
//初期値
$str = '';
//2ページ目以降
if($paged){ $str .= '<li class="list"><a href="'.$link.'">'.$name.'</a></li>'; }
//現在、滞在しているカテゴリ
else{ $str .= '<li class="list"><strong>'.$name.'</strong></li>'; }
//返り値
return $str;
}
//パンくずの生成
function breadcrumb(){
//初期値
$str = '';
//ページ番号の取得
$paged = get_query_var('paged');
//ホーム以外 又は、2ページ目以降
if(!is_home() || $paged){
//breadcrumb[s]
$str .= '<ul class="breadcrumb">';
//ホーム
$str .= '<li class="home"><a href="'.home_url().'">HOME</a></li>';
//カテゴリー
if(is_category()){
//ページ情報の取得
$gqo = get_queried_object();
//親カテゴリのチェック
if($gqo -> parent){
//先祖カテゴリの取得
$ancestors = array_reverse(get_ancestors($gqo -> cat_ID, 'category'));
//親カテゴリーの数だけ繰り返し処理
foreach($ancestors as $ancestor){ $str .= paged_change(true, get_category_link($ancestor), get_cat_name($ancestor)); }
}
//リスト表示
$str .= paged_change($paged, get_category_link($gqo -> cat_ID), $gqo -> cat_name);
//タグのアーカイブ
}else if(is_tag()){
//ページ情報の取得
$gqo = get_queried_object();
//リスト表示
$str .= paged_change($paged, get_tag_link($gqo -> term_id), $gqo -> name);
//日付のアーカイブ
}else if(is_date()){
//日別のアーカイブページが表示されているかチェック
if(is_day()){
$str .= paged_change(true, get_year_link(get_query_var('year')), get_query_var('year').'年');
$str .= paged_change(true, get_month_link(get_query_var('year'), get_query_var('monthnum')), get_query_var('monthnum').'月');
$str .= paged_change($paged, get_day_link(get_query_var('year'), get_query_var('monthnum'), get_query_var('day')), get_query_var('day').'日');
//月別のアーカイブページが表示されているかチェック
}else if(is_month()){
$str .= paged_change(true, get_year_link(get_query_var('year')), get_query_var('year').'年');
$str .= paged_change($paged, get_month_link(get_query_var('year'), get_query_var('monthnum')), get_query_var('monthnum').'月');
//年別のアーカイブページが表示されているかチェック
}else if(is_year()){
$str .= paged_change($paged, get_year_link(get_query_var('year')), get_query_var('year').'年');
}
//検索結果ページか調べる
}else if(is_search()){
$str .= paged_change($paged, get_search_link(get_search_query()), '「'.get_search_query().'」で検索した結果');
//404ページか調べる
}else if(is_404()){
$str .= paged_change(false, false, '404 Not found');
//シングルページ
}else if(is_single()){
//ページ情報の取得
$gqo = get_the_category();
//カウント初期値
$gqo_cnt = 0;
//ループ処理
foreach($gqo as $key => $val){
//ulタグの調整
if($gqo_cnt){ $str .= '<li class="home clear"><a href="'.home_url().'">HOME</a></li>'; }
//親カテゴリのチェック
if($gqo[$key] -> parent){
//先祖カテゴリの取得
$ancestors = array_reverse(get_ancestors($gqo[$key] -> cat_ID, 'category'));
//親カテゴリーの数だけ繰り返し処理
foreach($ancestors as $ancestor){ $str .= paged_change(true, get_category_link($ancestor), get_cat_name($ancestor)); }
}
//リスト表示
$str .= paged_change(true, get_category_link($gqo[$key] -> cat_ID), $gqo[$key] -> cat_name);
//カウントアップ
$gqo_cnt++;
}
}
//2ページ目以降
if($paged){ $str .= paged_change(false, false, $paged.'ページ目'); }
//breadcrumb[e]
$str .= '</ul>';
//返り値
return $str;
}
}
CSS
.breadcrumb{ list-style-type:none; overflow:hidden; }
.breadcrumb li{ float:left; }
.breadcrumb .list:before{ content:">"; margin:0 5px; }
.breadcrumb .clear{ clear:left; }
表示させたい箇所へ記述
//パンくずの表示 echo breadcrumb();
【参考Webサイト】
【更新履歴】
- 2014年07月13日シングルページ(個別投稿)用コードを追加
コメント(0件)
パンくずリスト(breadcrumbs list/ブレッドクラム)をプラグインを使わずに表示させる方法に対するご意見、ご感想、情報提供など皆様からのコメントをお待ちしております。 お気軽にコメントしてください。
コメントフォーム