コラム

2009年12月26日
WordPressでパンくずリストを実現する方法

WordPressでパンくずリストを作ろうとすると、Breadcrumb Navigation XT というプラグインが有名です。
ただ、細かい部分が思い通りに行かなかったり、カスタマイズしたい場合などがあります。

ということで、私は自分でパンくずリストを作るようにしています。
関数(function)にしているので、これをfunctions.phpに入れておけば、どこからでも簡単に呼び出せます。

ちなみにこんな感じです。

function pankuzu_get(){
//------------------------------------
// パンくずリストを編集
//------------------------------------
global $post;
echo " <ul class=\"pankuzu\">\n";
echo " <li><a href=\""; bloginfo(url) ; echo "/\">クラブエナー ホーム</a>&nbsp;&nbsp;&gt;&nbsp;&nbsp;</li>\n" ;

if(get_post_ancestors($post)){
  $hierarchy_count = "";
  foreach(array_reverse(get_post_ancestors($post)) as $upper_post){
    echo ' <li><a href="'; bloginfo(url);
    echo "/" . get_page_uri($upper_post) . '">' . get_the_title($upper_post) . "</a>&nbsp;&nbsp;&gt;&nbsp;&nbsp;</li>\n";
  }
}

if(is_month() || is_single()){
  echo ' <li><a href="'; bloginfo(url);
  if (is_category('1') || in_category('1')){
    echo "/news\">新着情報</a></li>\n";
  }else{
    echo "/column\">コラム</a></li>\n";
  }
}

global $monthnum, $year;

if(is_archive() && !is_category()){
  $year_month = $year . "年" . $monthnum . "月";
  $archive_title = $year_month . " " . $cat_name;
  echo " <li>$archive_title</li>\n";
}elseif(!is_single()){
  echo " <li>";
  wp_title('');
  echo "</li>\n";
}
echo " </ul>\n";

}

これをfunctions.phpに書いておき、パンくずリストを表示させたい部分で、


 <?php pankuzu_get(); ?>

と書いてやればOK。
簡単です。

 

どんなことをしているかというと、上位のページを取得して、それを順番に表示させる、というものです。
ちなみに、上記ソースは、クラブエナーのサイト用にカスタマイズしていますので、みなさん使われる場合には各自カスタマイズしてください。