プラグイン不要! WordPressでfunctions.phpにコードを追加するだけで使えるパンくずリスト

PR

パンくずリストはユーザービリティの考えや
SEO的に有効とされているもので、サイトが階層的になっているなら表示した方がいいものです

 

簡単にコードの追加だけで パンくずリストを作る方法

Githubでパンくずリストのコードが公開されていますこちらをfunctions.phpに追加すればOKです
ちょっとだけポイントがあるのでそこをクリアすれば簡単です

https://gist.github.com/wate/50a4186223f187128549

コードの必要な部分

function breadcrumb($divOption = array("id" => "breadcrumb", "class" => "clearfix")){
    global $post;
    $str ='';
    if(!is_home()&&!is_admin()){ /* !is_admin は管理ページ以外という条件分岐 */
        $tagAttribute = '';
        foreach($divOption as $attrName => $attrValue){
            $tagAttribute .= sprintf(' %s="%s"', $attrName, $attrValue);
        }
        $str.= '<div'. $tagAttribute .'>';
        $str.= '<ul>';
        $str.= '<li><a href="'. home_url() .'/">HOME</a></li>';
        $str.= '<li>&gt;</li>';

        if(is_category()) {                                //カテゴリーのアーカイブページ
            $cat = get_queried_object();
            if($cat -> parent != 0){
                $ancestors = array_reverse(get_ancestors( $cat -> cat_ID, 'category' ));
                foreach($ancestors as $ancestor){
                    $str.='<li><a href="'. get_category_link($ancestor) .'">'. get_cat_name($ancestor) .'</a></li>';
                    $str.='<li>&gt;</li>';
                }
            }
            $str.='<li>'. $cat -> name . '</li>';
        } elseif(is_single()){                            //ブログの個別記事ページ
            $categories = get_the_category($post->ID);
            $cat = $categories[0];
            if($cat -> parent != 0){
                $ancestors = array_reverse(get_ancestors( $cat -> cat_ID, 'category' ));
                foreach($ancestors as $ancestor){
                    $str.='<li><a href="'. get_category_link($ancestor).'">'. get_cat_name($ancestor). '</a></li>';
                    $str.='<li>&gt;</li>';
                }
            }
            $str.='<li><a href="'. get_category_link($cat -> term_id). '">'. $cat-> cat_name . '</a></li>';
            $str.='<li>&gt;</li>';
            $str.= '<li>'. $post -> post_title .'</li>';
        } elseif(is_page()){                            //固定ページ
            if($post -> post_parent != 0 ){
                $ancestors = array_reverse(get_post_ancestors( $post->ID ));
                foreach($ancestors as $ancestor){
                    $str.='<li><a href="'. get_permalink($ancestor).'">'. get_the_title($ancestor) .'</a></li>';
                    $str.='<li>&gt;</li>';
                }
            }
            $str.= '<li>'. $post -> post_title .'</li>';
        } elseif(is_date()){                            //日付ベースのアーカイブページ
            if(get_query_var('day') != 0){                //年別アーカイブ
                $str.='<li><a href="'. get_year_link(get_query_var('year')). '">' . get_query_var('year'). '年</a></li>';
                $str.='<li>&gt;</li>';
                $str.='<li><a href="'. get_month_link(get_query_var('year'), get_query_var('monthnum')). '">'. get_query_var('monthnum') .'月</a></li>';
                $str.='<li>&gt;</li>';
                $str.='<li>'. get_query_var('day'). '日</li>';
            } elseif(get_query_var('monthnum') != 0){    //月別アーカイブ
                $str.='<li><a href="'. get_year_link(get_query_var('year')) .'">'. get_query_var('year') .'年</a></li>';
                $str.='<li>&gt;</li>';
                $str.='<li>'. get_query_var('monthnum'). '月</li>';
            } else {                                    //年別アーカイブ
                $str.='<li>'. get_query_var('year') .'年</li>';
            }
        } elseif(is_search()) {                            //検索結果表示ページ
            $str.='<li>「'. get_search_query() .'」で検索した結果</li>';
        } elseif(is_author()){                            //投稿者のアーカイブページ
            $str .='<li>投稿者 : '. get_the_author_meta('display_name', get_query_var('author')).'</li>';
        } elseif(is_tag()){                                //タグのアーカイブページ
            $str.='<li>タグ : '. single_tag_title( '' , false ). '</li>';
        } elseif(is_attachment()){                        //添付ファイルページ
            $str.= '<li>'. $post -> post_title .'</li>';
        } elseif(is_404()){                                //404 Not Found ページ
            $str.='<li>404 Not found</li>';
        } else{                                            //その他
            $str.='<li>'. wp_title('', true) .'</li>';
        }
        $str.='</ul>';
        $str.='</div>';
    }
    echo $str;
}

 

ポイントは、テーマのfunctions.phpに追加します
注意点は、phpのタグ内に入れてください

phpタグの外や、phpタグの前後に改行や空白はいれないでください
テーマが上手く動かなくなります、functions.phpは必ず <?php から始まって ?>で終わっています

<?php
他のコードが沢山並んでたりします、phpタグの中に追加しますこの場所のように

?>

 

あとは呼び出しコードで呼び出すだけです

<?php breadcrumb(); ?>

表示したいテンプレートに追加します

 

それと、CSSは各自設定して、見た目を整えてください

PR

COMMENT

コメントを残す

PR

9ineBBの管理人が運営するサイト

WDG WEB DESIGN GALLERY ウェブデザインギャラリー