【wordpress】パンくずリストを追加するプラグイン「Yoast Breadcrumbs」

スポンサーリンク

プラグインを使わなくても出来るようですがYoast Breadcrumbsというプラグインを使ってみました。
ダッシュボードのプラグインの新規追加→「Yoast Breadcrumbs」で検索するとあるのでそれでインストールし有効化でOK。

次に、パンくずリストを表示したい場所に下記のコードを追加する。パンくずリストはトップページや全てのページに表示するのではなく単一記事のときにだけ表示するようにします。

<?php if ( function_exists('yoast_breadcrumb') ) {
yoast_breadcrumb('<p id="breadcrumbs">','</p>');
} ?>

このコードを追加する場所(ファイル)はsingle.phpに追加します。

変更前(single.php)

get_header(); ?>
←ここに上のコードを追加
	<?php

変更後(single.php)

get_header(); ?>
<?php if ( function_exists('yoast_breadcrumb') ) {
yoast_breadcrumb('<p id="breadcrumbs">','</p>');
} ?>
	<?php

テーマgrapheneの場合、これだけでは単一記事にパンくずリスト+前後記事へのリンクも表示されてしまうので、前後記事へのリンクをつけないようにします。wordpressの場合、get_header()という関数でヘッダ(header.php)を読み込んでいるようです。なのでheader.phpを修正すればいいかと思いましたがそうではなく、single.phpの中ほどに

    /* Run the loop to output the posts.
     * If you want to overload this in a child theme then include a file
     * called loop-single.php and that will be used instead.
     */
     get_template_part('loop', 'single');
    ?>

とあり、どうもloop-single.phpで何かしているようです。が、loop-single.phpというファイルはテーマの中になくloop.phpを見てみると上から4行目のあたりに

    	<?php /* Posts navigation for single post pages, but not for Page post */ ?>
		<?php if (is_single() && !is_page()) : ?>
        <div class="post-nav clearfix">
            <p id="previous"><?php previous_post_link(); ?></p>
            <p id="next-post"><?php next_post_link(); ?></p>
            <?php do_action('graphene_post_nav'); ?>
        </div>
        <?php endif; ?>

とあり、ここで前後記事へのリンクを作っているようなのでこの部分をコメントアウトするとOKでした。たぶんloop-single.phpはloop.phpにまとめられたんだと思います。

    	<?php /* Posts navigation for single post pages, but not for Page post */ ?>
		<?php if (is_single() && !is_page()) : ?>
<!--
        <div class="post-nav clearfix">
            <p id="previous"><?php previous_post_link(); ?></p>
            <p id="next-post"><?php next_post_link(); ?></p>
            <?php do_action('graphene_post_nav'); ?>
        </div>
-->
        <?php endif; ?>

最後にプラグインYoast Breadcrumbsの設定で上から4つめの「Prefix for the breadcrumb path:」の値を空白にして保存。するとパンくずリストが表示できました、やったー

まとめるとテーマgrapheneの場合、single.phpとloop.phpを編集すればパンくずリストのみが単一記事に表示できる。

—–
パンくずリストをつける場合、必ずプラグインを使う必要はなくPHPコードを追加するだけでもできるみたいです。プラグインを増やしたくない場合にいいかも。参考用にリンクをはっておきます。

WordPress のパンくずリストをプラグイン無しで実現する3行コード
WordPress のパンくずリストをプラグイン無しで実現する3行コード