2014年07月04日(Fri)
パンくずリスト(breadcrumbs list/ブレッドクラム)をプラグインを使わずに表示させる方法
少しでもSEO効果を高める為に、「パンくずリスト(breadcrumbs list/ブレッドクラム)」を設置する事にしました。 プラグインで対応できればと思い探してみると、やはり複数存在し中でも「Breadcrumb NavXT」という有能そうなプラグインを見つけたので検討する事にしました。
Breadcrumb NavXT を検討した結果
早速、「Breadcrumb NavXT」をインストールしてみると、参考にしたサイトは、各項目が日本語表記だったのに対して自分の場合は何故か各項目が英語表記でした… インストールするものを間違えたのかと思い再検索すると、どうやら日本語版もある様ですが、日本語環境で使用すると問題が起こるとか起こらないとか… だんだん、調べるのが面倒になり断念し自分で作る事にしました。 頑張れば英語表記でも出来そうですけど項目が多すぎて…
パンくずリスト(breadcrumbs list)を作る
カテゴリー、タグ、日付、検索結果、シングルページ(個別投稿)、404ページのパンくずリストのコードを「functions.php」に関数としてまとめてみました。
functions.php
001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019 020 021 022 023 024 025 026 027 028 029 030 031 032 033 034 035 036 037 038 039 040 041 042 043 044 045 046 047 048 049 050 051 052 053 054 055 056 057 058 059 060 061 062 063 064 065 066 067 068 069 070 071 072 073 074 075 076 077 078 079 080 081 082 083 084 085 086 087 088 089 090 091 092 093 094 095 096 097 098 099 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 | //ページ番号の切替 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
1 2 3 4 | .breadcrumb{ list-style-type : none ; overflow : hidden ; } .breadcrumb li{ float : left ; } .breadcrumb .list:before{ content : ">" ; margin : 0 5px ; } .breadcrumb .clear{ clear : left ; } |
表示させたい箇所へ記述
1 2 | //パンくずの表示 echo breadcrumb(); |
【参考Webサイト】
【更新履歴】
- 2014年07月13日シングルページ(個別投稿)用コードを追加
コメント(0件)
パンくずリスト(breadcrumbs list/ブレッドクラム)をプラグインを使わずに表示させる方法に対するご意見、ご感想、情報提供など皆様からのコメントをお待ちしております。 お気軽にコメントしてください。
コメントフォーム