WordPressでパンくずリスト・複数の親子カテゴリーを表示

スポンサーリンク

WordPress で、2個以上の複数の親子カテゴリーを、パンくずリストとして表示する方法です。パンくずリストをしっかりと表示させるとユーザビリティーが向上して、ブログ・サイトのページビューも増えやすいかと思います。プラグインを使わない方法ですが、プラグインを使わなくても簡単に実現できます。

— 環境 —
WordPress 4.4.2

【お知らせ】 英単語を画像イメージで楽に暗記できる辞書サイトを作りました。英語学習中の方は、ぜひご利用ください!
画像付き英語辞書 Imagict | 英単語をイメージで暗記
【開発記録】
英単語を画像イメージで暗記できる英語辞書サービスを作って公開しました
スポンサーリンク

パンくずリスト表示に get_category_parents() を使う

get_category_parents() というテンプレート用の関数を使って、カテゴリーのパンくずリストを表示させます。get_category_parents() の使い方は以下のとおりです。公式ドキュメントからの引用。

get_category_parents( $id, $link, $separator, $nicename, $visited );

指定されたカテゴリーの親カテゴリーのリストを取得します。 指定されたカテゴリーも含めて、階層の順序で出力します。

パラメータ(引数)
$id
(整数) (必須) カテゴリー ID
初期値: なし
$link
(真偽値) (オプション) 各カテゴリーへのリンクを出力するか否か。
初期値: false – 出力しない
$separator
(文字列) (オプション) 各カテゴリーを区切る文字列。
初期値: ‘/’
$nicename
(真偽値) (オプション) カテゴリー名の代わりにスラッグを出力するか否か。
初期値: false – カテゴリー名を出力
$visited
(配列) (オプション) リンク済みカテゴリーの配列。このパラメータは、この関数が自分を再帰的に呼び出すとき、結果のリストにカテゴリーの重複を避けるために使用されます。
初期値: array() – 空の配列

第1引数に、親カテゴリーのリストを取得したいカテゴリーIDを指定する。リンク付きで出力する場合は、第2引数に true を指定、第3引数にセパレーター(区切り文字)を指定します。

パンくずリスト表示用の functions.php 関数を作成

では、以降は具体的な作業手順の説明です。まずは、パンくずリスト取得用のヘルパー的な関数を functions.php に作成します。

functions.php

以上で、functions.php に作成する関数は終了。この get_category_breadcrumb() 関数は、個別記事テンプレート(single.php), カテゴリーページのテンプレート(category.php)で使用できます。

あとは、個別の記事ページ(single.php)やカテゴリーページ(category.php)のテンプレートファイルに、パンくずリストを表示させます。

single.php / category.php

これで個別記事ページやカテゴリーページで、パンくずリストがリンク付きで以下のように表示されます。

簡単ですね^^

末尾の区切り文字を削除したバージョン

自分の場合、末尾の区切り文字( > )を表示せずに、以下のようにパンくずリストを表示したかった。

なので、get_category_parents() で取得した親子カテゴリーのパンくずリストを、ちょっと自前で修正するコードを追記しました。

functions.php

substr() を使って末尾の区切り文字(ここでは末尾の ‘ > ‘ の文字列)を削除して、パンくずリストを返すようにしました。これで、WordPress の記事ページで、リンク付きで以下のように表示されます。

どちらでもお好みのほうをご利用ください。以上、WordPress で親子カテゴリーをパンくずリスト表示する方法でした!

スポンサーリンク
WordPress は人気ナンバーワンのブログ・ウェブサイトの管理ツールです。PHP を使えればカスタマイズできるので、ぜひトライされてみてください。
 
スポンサーリンク

Leave Your Message!