@miya0001 さんに、WordPressでパンくずリストを表示するためのプラグイン9個+1を検証で半ば強引に取り上げてもらったパラメータでカスタマイズしやすいWordPressのパンくずナビを作ってみたのコードを一部デバッグして、さらに簡単に使えるようプラグインにしてみました。
とりあえずプラグイン化しただけなので、国際化とかはまだですし、サンプルとなるCSSなども全然作っていませんが、それについても追って公開していきたいと思います。
ただし、Breadcrumb NavXTとの差別化もあって管理画面などの実装は今のところ考えていません。
フィードバックがあれば、是非お寄せ下さい。
使い方
- 上記のダウンロードリンクより、プラグインのアーカイブファイルをダウンロードし、解凍後、プラグインディレクトリにアップロードしてください。
- プラグイン管理画面より、Prime Strategy Bread Crumbを有効化してください。
- テンプレートファイルのパンくずナビを表示したい箇所に、パンくずナビのテンプレートタグを追加してください。パンくずナビの表示は、テンプレートタグのパラメータで色々と変更ができます。パラメータについては、指定可能なパラメータを参照してください。
テンプレートタグ
デフォルトパターン
<?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> > <a href="http://www.example.com/category/honda/">HONDA</a> > <a href="http://www.example.com/category/honda/sports/">スポーツ</a> > <a href="http://www.example.com/category/honda/sports/coupe/">クーペ</a> > <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を指定した場合の結合文字列。デフォルトは「>」(>)
- 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
- プラグイン化
またお邪魔します。
こちらのプラグインを試していたところ
デバッグモードでWarningとNoticeが出たのでご報告しておきます。
WordPress 3.1.4、Prime Strategy Bread Crumb 0.8.0の組み合わせで
サーバーはローカル(MAMP、PHP Version 5.3.5)です。
プラグインを有効化し、テンプレートファイルに
と記述したところ、
Warning: Missing argument 1 for bread_crumb(), called in /(略)/wp-content/themes/(テーマ)/header.php on line 55 and defined in /(略)/wp-content/plugins/prime-strategy-bread-crumb/prime-strategy-bread-crumb.php on line 339
Notice: Undefined variable: args in /(略)/wp-content/plugins/prime-strategy-bread-crumb/prime-strategy-bread-crumb.php on line 341
となりました。
PHPはあまり詳しくないのですが、
prime-strategy-bread-crumb.php の 339行目を
function bread_crumb( $args ="" ) {
とすることでエラーは出なくなりました。
いつもこんなコメントですいません・・・。
gatespaceさん
いえいえ、フィードバックいただけるだけでもありがたい限りです。
アップデートしましたら、改めてお知らせいたしますね。
gatespaceさん
お待たせしてしまいましたが、0.8.1へのアップデートを行い、Noticeエラーへの対応を行いました。上部のダウンロードリンクより最新バージョンをダウンロードして上書きをお願いいたします。
その他お気づきの点などありましたら、またお寄せ下さい。
対応ありがとうございます。問題なく動作しています。
こちらこそお返事が遅くなってしまい、申し訳ありません。
こんにちは、このパンくずナビを入れてみたのですが、固定ページにて「Catchable fatal error: Object of class WP_Error could not be converted to string」というエラーが出ます。
親ページ
┗子供ページ
┗孫ページ
といった具合に階層化しているため、孫ページにアクセスした際のURLは「http://hoge.jp/親/子供/孫/」などとなっています。また、子供ページにアクセスした際のURLは「http://hoge.jp/親/子供/」などとなっています。
この孫ページ・子供ページに表示される「親」へのリンクをクリックすると、上記のエラーが出ます。
テンプレートタグを設置しているのは、ヘッダテンプレートです。
使用しているテーマは、ちょっとだけ古いものだと思いますが、改善は可能でしょうか。
回答お願いいたします。
satoさん、ありがとうございます。
エラーメッセージにエラーが発生した行番号(line nnn)のような記述も表示されていたかと思います。お手数ですが、その番号も合わせて教えていただけますでしょうか。
どうぞよろしくお願いします。
回答ありがとうございます。
プラグインを全て停止したところ、問題なく動作するようになりました。
これから、どれに原因があったのか、調べていこうと思います。
ありがとうございました。
とても使いやすいプラグインをありがとうございます。
1点質問があります、カスタム投稿、カスタムタクソノミーを使ってウェブサイトを作ってsingule.phpに表示させたら、パンくずリストが以下のようになります。
トップページ>カスタム投稿>投稿タイトル
これを
トップページ>カスタム投稿>カスタムタクソノミー>投稿タイトル
にするにはどうすればいいのでしょうか?