Breadcrumb NavXTで沼らない!bcn_displayとbcn_display_listの違いと正しい選び方

記事内にプロモーションを含む場合があります。
パンくずのCSSが効かない?原因は構造にあった|Breadcrumb NavXTの関数使い分けで解決!

※本記事は「オリジナルテーマや子テーマでパンくずリストを導入したい方」向けです。
既にテーマにパンくず機能がある場合は不要です。

ワンクリックで目的地へGO!

はじめに|パンくずリスト、表示は簡単だけどスタイルで悩む?

結論:スタイル重視なら bcn_display_list()、最短表示なら bcn_display()

  • 既に <ul><li> でデザインしている → bcn_display_list() が崩れにくい
  • まず表示だけしたい → bcn_display()

パンくずリストは、Webサイトのナビゲーションを補助する大切な要素ですが、実装時に悩みが多いパーツでもあります。

WordPressでは「Breadcrumb NavXT」という定番プラグインを使えば、簡単にパンくずリストを表示できます。 ですが、実際に導入してみると、

  • CSSが効かない
  • 構造が崩れる
  • デザインが思った通りにならない

といった壁にぶつかるケースも少なくありません。

私自身も、パンくずリストの実装で10時間以上、3回ほど沼る経験を繰り返したことがあります。
「パンくずでこんなに苦戦する人なんて他にいるのかな?」と思うほど毎回迷走…。

でも、bcn_display()bcn_display_list()構造の違いと使い分け方をきちんと整理して理解した瞬間、「なんだ、こんなにシンプルなことだったのか!」と一気に解決できました!

この記事でわかること
  • Breadcrumb NavXTの概要と導入方法
  • bcn_display()bcn_display_list() の違い
  • HTML構造の違いとスタイルへの影響
  • 実際の使い分け方と注意点

Breadcrumb NavXTとは?|WordPress用パンくずプラグインの定番

Breadcrumb NavXT(ブレッドクラム ナビXT)は、 WordPressでパンくずリスト(階層ナビゲーション)を自動表示できる人気プラグインです。

主な特徴
  • WordPressの構造に合わせて自動でパンくずを生成
  • → 自作テーマでもゼロから作らなくて済む
  • 投稿・固定ページ・カテゴリ・タグに対応
  • カスタム投稿・タクソノミーにも柔軟に対応
    → ブログ以外のサイト設計にも対応できる
  • 関数(bcn_display / bcn_display_list)で表示方法を選べる

プラグインを有効化して、テンプレートに1行コードを加えるだけで使えるため、導入ハードルは低いです。
ですが、“出力構造”と“CSSの相性”を考慮せずに導入すると表示が崩れることもあります。

Breadcrumb NavXTの導入手順(概要)

Breadcrumb NavXT はプラグインを有効化するだけでも使えますが、
オリジナルテーマや子テーマに組み込む場合は下記の流れが基本になります。

  1. プラグイン「Breadcrumb NavXT」を有効化
  2. パンくず用のテンプレートファイルを作成
  3. 表示したい箇所に呼び出しコードを追加
  4. CSSでスタイルを調整
  5. 表示崩れや二重表示をチェック

詳しいコード例や設定方法は別記事でまとめています。

次のセクションでは、
表示関数である bcn_display()bcn_display_list() の違いと特徴について詳しく解説していきます。

bcn_display() の特徴|最速で表示したい人向け

bcn_display() は、Breadcrumb NavXT を使ったパンくずリストの表示方法として、
書籍や講座でもよく紹介されている基本の関数です。

コード例

<?php if ( function_exists( 'bcn_display' ) ) : ?>
  <div class="breadcrumb">
    <?php bcn_display(); ?>
  </div>
<?php endif; ?>

出力されるHTMLの例

<div class="breadcrumb">
  <span typeof="v:Breadcrumb">
    <a href="/">ホーム</a>
  </span> › 
  <span typeof="v:Breadcrumb">
    <a href="/blog/">ブログ</a>
  </span> › 
  <span class="current-item">記事タイトル</span>
</div>

特徴まとめ

  • <div> + <span> + <a> を使ったフラットなHTML構造
  • 区切り文字(セパレータ)は > などのテキストで出力される
  • 構造の制御がしづらく、CSSが効きにくいケースがある
向いている人
  • とにかくパンくずをすぐ表示したい人
  • デザインは最低限でOKな人
  • 書籍や講座のサンプル通りに導入したい人

bcn_display_list() の特徴|HTML+CSS派にうれしい構造

bcn_display_list() は、<ul><li> の構造でパンくずを出力できる関数です。
HTML+CSSベースでデザインを組んでいる人にとって扱いやすいのが特徴です。

コード例

<?php if ( function_exists( 'bcn_display_list' ) ) : ?>
  <ul class="breadcrumb">
    <?php bcn_display_list(); ?>
  </ul>
<?php endif; ?>

出力されるHTMLの例

<ul class="breadcrumb">
  <li typeof="v:Breadcrumb">
    <a href="/">ホーム</a>
  </li>
  <li typeof="v:Breadcrumb">
    <a href="/blog/">ブログ</a>
  </li>
  <li class="current-item">記事タイトル</li>
</ul>

特徴まとめ

  • <ul><li> 形式でリスト構造が明確
  • .current-item などのクラスが自動で付与される
  • セパレータはCSSの ::before などで調整できる → デザイン自由度が高い
向いている人
  • HTML+CSSベースでパンくずをデザインしていた人
  • CSSで細かくスタイルを当てたい人
  • 構造の意味づけ(セマンティック)を重視したい人
ありぃ

bcn_display() は手軽だけど、CSSが効きにくいことがある。bcn_display_list() はHTMLの構造がしっかりしている分、デザイン面で安心です◎


このあとのセクションでは、bcn_display()bcn_display_list() のHTML構造を比較しながら、
どちらを選べばよいか、状況別の判断ポイントも整理していきます。

HTML構造の違いを比較

ここでは、bcn_display()bcn_display_list() がそれぞれどのようなHTMLを出力するのかを、実際のコードで比較してみます。

🟥 bcn_display() の出力例

<div class="breadcrumb">
  <span typeof="v:Breadcrumb">
    <a href="/">ホーム</a>
  </span> › 
  <span typeof="v:Breadcrumb">
    <a href="/blog/">ブログ</a>
  </span> › 
  <span class="current-item">記事タイトル</span>
</div>
特徴
  • <div> + <span> + <a> を使ったシンプルなフラット構造
  • 区切り()はテキストとして挿入される
  • ul / li を前提にしたCSSは効かない
  • 付与されるクラスが限られるため、カスタマイズ性は低め

🟩 bcn_display_list() の出力例

<ul class="breadcrumb">
  <li typeof="v:Breadcrumb">
    <a href="/">ホーム</a>
  </li>
  <li typeof="v:Breadcrumb">
    <a href="/blog/">ブログ</a>
  </li>
  <li class="current-item">記事タイトル</li>
</ul>
特徴
  • <ul><li> のリスト形式で階層構造が明確
  • .current-item などのクラスが自動で付与される
  • セパレータは ::before などCSSで柔軟に調整可能
  • 既存のHTML+CSSに自然に組み込みやすい

どちらを選ぶべきか?

  • すでにHTML+CSSでパンくずをデザインしている場合 → bcn_display_list() が断然おすすめ
  • 「まずは表示できれば十分」という場合 → bcn_display() でもOK

bcn_display() vs bcn_display_list()|比較まとめと選び方のヒント

ここまで紹介してきた bcn_display()bcn_display_list() の違いを、
実装面・カスタマイズ性・使いやすさなどの観点で比較表にまとめました。

比較項目bcn_display()bcn_display_list()
出力構造div, span, a のフラット構造ul, li, aのリスト構造
スタイルの当てやすさ△(工夫が必要)◎(CSSで当てやすい)
構造的な意味(セマンティック)弱い(階層が曖昧)明確(ナビゲーションに適切)
表示までの手軽さ(初心者向き)◎(コードを貼るだけ)◯(<ul>を用意する必要あり)
カスタマイズ性低い(上書き・追加が面倒)高い(既存のHTML+CSSを活かせる)
相性が良い状況「とりあえず表示したい」場合「デザインや構造を整えたい」場合

結論:スタイル重視なら bcn_display_list() が安心

HTML+CSSでパンくずをデザインしている場合は、bcn_display_list() の方が圧倒的に扱いやすいです。

bcn_display() は最短で表示できて便利ですが、出力されるHTMLが <div><span> ベースのため、CSSが効きづらく表示崩れが起こりやすいのが難点。

一方、bcn_display_list() はリスト構造で出力されるので、既存のHTML+CSSにそのまま組み込めて調整もスムーズ。

もちろん「表示されるだけで十分」というケースでは bcn_display() でも問題ありませんが、構造の違いを理解して選ぶことが大切です。

【実例】パンくずが崩れて3回ハマった私の話

私がこのプラグインを初めて使ったのは、まだWordPressテーマに慣れていない頃。
HTML+CSSでパンくずを自作し、「あとはプラグインで動的化すればOK」と安易に考えていました。

ところが実際には、bcn_display() を使ったことで CSSが効かない・表示が崩れる というトラブルが頻発。

当時は「HTMLやCSSの書き方が悪いのかな?」と思い込んでしまい、

  • テンプレートを何度も見直す
  • CSSのセレクタを変更する
  • プラグイン設定を繰り返し確認

といった修正を延々と続けていました。
その結果、毎回10時間以上ハマるという“パンくず沼”を3回以上も繰り返す羽目に…。

最終的に bcn_display_list() の存在を知り、HTMLとCSSの構造を見直したことでようやく安定表示が実現しました。

この経験から学んだこと
  • パンくずの出力構造を知らないと、いくらCSSを直しても崩れる
  • bcn_display_list() は「自分でHTMLを組んでいた人」にこそ向いている
  • 最初に構造の違いを理解しておけば、何時間ものトラブルを回避できる

まとめ|この記事でできるようになること

この記事を通して、Breadcrumb NavXT の2つの関数、
bcn_display()bcn_display_list() の違いや使い分け方を理解できたはずです。

どっちを選ぶか迷ったら…
  • CSSやHTML構造にこだわりたい → bcn_display_list()
  • とにかく最速で表示させたいbcn_display()

パンくずリストの実装は、どの関数を選ぶかで見た目や安定性が大きく変わります。
導入前に「自分が求めているスタイルはどちらに合うか」を整理してから選ぶことが大切です。

私自身、こうした違いに気づかず何度も苦戦しましたが、この記事が同じように悩む方の近道になれば嬉しいです。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
ワンクリックで目的地へGO!