パラメータでカスタマイズしやすいパンくずナビをプラグインにしてみた

@miya0001 さんに、WordPressでパンくずリストを表示するためのプラグイン9個+1を検証で半ば強引に取り上げてもらったパラメータでカスタマイズしやすいWordPressのパンくずナビを作ってみたのコードを一部デバッグして、さらに簡単に使えるようプラグインにしてみました。

とりあえずプラグイン化しただけなので、国際化とかはまだですし、サンプルとなるCSSなども全然作っていませんが、それについても追って公開していきたいと思います。
ただし、Breadcrumb NavXTとの差別化もあって管理画面などの実装は今のところ考えていません。

Download
Prime Strategy Bread Crumb 1.0.0

フィードバックがあれば、是非お寄せ下さい。

使い方

  1. 上記のダウンロードリンクより、プラグインのアーカイブファイルをダウンロードし、解凍後、プラグインディレクトリにアップロードしてください。
  2. プラグイン管理画面より、Prime Strategy Bread Crumbを有効化してください。
  3. テンプレートファイルのパンくずナビを表示したい箇所に、パンくずナビのテンプレートタグを追加してください。パンくずナビの表示は、テンプレートタグのパラメータで色々と変更ができます。パラメータについては、指定可能なパラメータを参照してください。

テンプレートタグ

デフォルトパターン

<?php if ( function_exists( 'bread_crumb' ) ) { bread_crumb(); } ?>
<ul class="bread_crumb">
	<li class="level-1 top"><a href="http://www.example.com/">トップページ</a></li>
	<li class="level-2 sub"><a href="http://www.example.com/category/honda/">HONDA</a></li>
	<li class="level-3 sub"><a href="http://www.example.com/category/honda/sports/">スポーツ</a></li>
	<li class="level-4 sub"><a href="http://www.example.com/category/honda/sports/coupe/">クーペ</a></li>
	<li class="level-5 sub tail current">インテグラ</li>
</ul>

文字列形式

<?php if ( function_exists( 'bread_crumb' ) ) { bread_crumb( 'type=string' ); } ?>
<a href="http://www.example.com/">トップページ</a> &gt; <a href="http://www.example.com/category/honda/">HONDA</a> &gt; <a href="http://www.example.com/category/honda/sports/">スポーツ</a> &gt; <a href="http://www.example.com/category/honda/sports/coupe/">クーペ</a> &gt; <strong class="current">インテグラ</strong>

指定可能なパラメータ

type
stringを指定すると、リストではなく文字列として出力します。デフォルトはlist
home_label
トップページの表示テキスト。デフォルトは「トップページ」
search_label
検索結果の表示テキスト。デフォルトは「『%s』の検索結果」(%sが検索文字列)
404_label
404ページの表示テキスト。デフォルトは「404 Not Found」
category_label
カテゴリーの表示テキスト。デフォルトは「%s」(%sがカテゴリー名)
tag_label
投稿タグの表示テキスト。デフォルトは「%s」(%sが投稿タグ名)
taxonomy_label
カスタムタクソノミーの表示テキスト。デフォルトは「%s」(%sがタクソノミー名)
author_label
寄稿者の表示テキスト。デフォルトは「%s」(%sが寄稿者名)
attachment_label
アタッチメントの表示テキスト。デフォルトは「%s」(%sがアタッチメント名)
year_label
年の表示テキスト。デフォルトは「%s年」(%sが年の数字)
month_label
月の表示テキスト。デフォルトは「%s月」(%sが月の数字)
day_label
日の表示テキスト。デフォルトは「%s日」(%sが日の数字)
joint_string
typeでstringを指定した場合の結合文字列。デフォルトは「&gt;」(>)
navi_element
ラッパー要素名。divまたはnavを選択可能。デフォルトは空(要素無し)
elm_class
ラッパー要素のクラス名。ラッパー要素がなくタイプがリストの場合は、ulのクラス名となる。デフォルトは、「bread_crumb」
elm_id
ラッパー要素のid名。ラッパー要素がなくタイプがリストの場合は、ulのid名となる。デフォルトは、空。(idなし)
li_class
タイプがリストの場合のliに付くクラス名。デフォルトは空(なし)
class_prefix
各クラスに付く接頭辞。デフォルトは空(なし)
current_class
表示中のページのパンくずナビに付与されるクラス名。デフォルトは「current」
indent
タブでのインデント数。デフォルトは0。
echo
出力を行うか。デフォルトはtrue(出力する)。0またはfalseの指定でPHPの値としてreturnする。

更新履歴

2011.08.08 ver. 1.0.0
カスタム投稿タイプアーカイブ表示時の対応を追加。公式ディレクトリにて公開
2011.07.12 ver. 0.8.1
テンプレートタグでパラメータの指定が無かった場合にNoticeエラーが出ていた問題を修正
デフォルトパーマリンクでmパラメータに対応できていなかった問題を修正
2011.06.30 ver. 0.8.0
プラグイン化

「パラメータでカスタマイズしやすいパンくずナビをプラグインにしてみた」への41件のフィードバック

  1. とても、使いやすいプラグインありがとうございます!
    利用させていただいてます。

    カテゴリが二つ紐づいてる場合、
    single.phpで表示されるパンクズリストを
    どちらか一方のカテゴリに指定することはできますか?

    例)地域カテゴリ、名称カテゴリがあったとして、
    最終的に、地域カテゴリの方のパンクズリストを表示させたい。

    ○東京>世田谷区>あいうえお店舗
    ×あ行>あいうえお店舗

  2. araiさん、こんにちは。

    bread_crumb_arr というフィルターフックを使うと、表示するパンくずリストの項目を配列で取得することができますので、当行の場合、この配列の操作を行って地域カテゴリーのものに差し替えれば実現可能です。

  3. はじめまして!
    WPに不慣れな私でも使いやすいプラグインを作っていただきありがとうございます。
    カスタム投稿などにも対応しているので利用させて頂いています。

    パラメーターの利用方法などが分からないのですが、
    たとえば特定のカテゴリーだけリンク方法を変えることはできるのでしょうか?
    例)

    HOME > NEWS一覧 > 個別記事

    HOME      top/index.html
    NEWS一覧    top/news/index.html
    個別記事  top/news/個別記事id  の場合。

    固定ページや特定のカテゴリーだけ「個別ページ」に「投稿ページ」の一覧を表示させているのでパンくずのリンク先を指定できると助かるのですが。。無理でしょうか?
    phpはまだまだ勉強中なのでどこをカスタマイズできるのか分っていません。

    ご教示いただけると嬉しいです。よろしくお願い致します。

  4. はじめまして。
    テーマの中に埋め込むことができるので、とても便利だと思って使っています。

    実はちょっと困ったことが起きています。
    ‘type’ => ‘string’の時に ‘navi_element’ => ‘nav’が無視されているようなのです。
    ソースコードを見てみると、途中でoutputが上書きされている(93行目)ようなのですが、修正方法がよくわかりません。

    現在のところは、bread_crumb()の前後に直接HTMLタグを入れてごまかしているのですが、もし可能であればご対応いただければ助かります。

    よろしくお願い申し上げます。

  5. 便利に使おうと思って、インストールしました。
    Prime Strategy Bread Crumb

    最初、正常に動作しているときもしばらくありましたが、現在は、
    http://jca-kyoto.jp/
    の中では
    どこをクリックしても。
    http://jca-kyoto.jp/inquiry
    にリンクしてしまいます。

    phpには、下記のように書きました。

    対処法がわかりません。お教えください。
    よろしくお願いします。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です