パンくずリスト
記事メインにしている場合のパンくずリスト
原典:http://d.hatena.ne.jp/appakumaturi/20110628/1309271588
functions.php
function my_bread(){ global $post; define("SEPA"," > "); //区切り文字 //【表示】ホーム echo '<a href="'. get_bloginfo('url').'">HOME</a>'; //カテゴリアーカイブ if(is_category()){ echo SEPA; $cat = get_category(get_cat_ID(single_cat_title('',false))); //親カテゴリがある場合 if($cat->parent){ $cate_pare = get_category_parents(get_cat_ID(single_cat_title('',false)),true,SEPA); //get_category_parentsが自カテゴリも生成しちゃうので除去 for($i=0;$i<2;$i++){ $cate_pare = substr($cate_pare,0,strrpos($cate_pare,SEPA)); } //【表示】親カテゴリ echo $cate_pare.SEPA; } //【表示】自カテゴリ single_cat_title(); //個別記事ページ }elseif(is_single()){ echo SEPA; while(have_posts()){ the_post(); $cat=get_the_category(); $cat = $cat[0]; //【表示】カテゴリ echo get_category_parents($cat->cat_ID,true,SEPA); //【表示】記事タイトル the_title(); } //ページ }elseif(is_page()){ echo SEPA; //【表示】ページタイトル the_title_attribute(); //タグアーカイブ }elseif(is_tag()){ echo SEPA.'タグ:'; //タグ名 single_tag_title(); //日付アーカイブ }elseif(is_date()){ echo SEPA; //西暦の後に「年」がつかないので追加 $date = wp_title('',false); $date = substr($date,0,6).'年'.substr($date,6); //【表示】日付 echo $date; //日付の後に「日」がつかないので追加 if(is_day()){ echo '日'; } //検索結果 }elseif(is_search()){ echo SEPA; //【表示】検索文字列 the_search_query(); echo ' の検索結果'; //投稿者アーカイブ }elseif(is_author()){ echo SEPA; //【表示】投稿者名 wp_title(); //404ページ }elseif(is_404()){ //【表示】案内文 echo SEPA.'ページが見つかりません。'; } }
テンプレートタグ
<?php my_bread(); ?>
子カテゴリの右側にセパレータが出ない、とっても良い子です。
次に、固定ページメインで作成する場合。
Wordpressをブログとしてではなく、CMSとして使用する場合ですね。
functions.phpに書くのではなく、直接テンプレートに記述します。
原典:http://www.imaginationdesign.jp/blog/wordpress/1425/
<div> <a href="<?php echo get_option('home'); ?>">HOME</a> > </li> <?php foreach ( array_reverse(get_post_ancestors($post->ID)) as $parid ) { ?> <a href="<?php echo get_page_link( $parid );?>" title="<?php echo get_page($parid)->post_title; ?>"> <?php echo get_page($parid)->post_title; ?></a> > <?php } ?> <?php the_title(''); ?> </div>
サイトによって使い分けすれば、より便利かもー。