<figure class="wp-block-image size-large"><img src="https://wakatchi.dev/wp-content/uploads/2025/05/lightning-breadcrumb-dynamic-1024x538.webp" alt="LightningテーマのWordPressサイトを表示するノートPCの画面に、パンくずリストと矢印・ギアアイコンが描かれた青基調のフラットイラスト" class="wp-image-2193"/></figure>
<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-sm--margin-top"></div></div>
<p class="wp-block-paragraph" style="font-size:18px">こんにちは、サイト管理者のわかっち (<a href="https://twitter.com/wakatchi_tech">@wakatchi_tech</a>) です。</p>
<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-right vk_balloon-type-think vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img class="vk_balloon_icon_image vk_balloon_icon_image-type-rounded " src="https://wakatchi.dev/wp-content/uploads/2022/07/computer08_obasan.png" alt=""/><figcaption class="vk_balloon_icon_name">質問者</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content has-background-color has-pale-cyan-blue-background-color "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p class="wp-block-paragraph">Lightningのパンくずリストを動的に書き換えたいんだけどな</p>
</div></div></div>
<p class="wp-block-paragraph" style="font-size:18px">WordPressのデザインテーマであるLightningは、画面の上部や下部にパンくずリストを表示できます。</p>
<p class="wp-block-paragraph" style="font-size:18px">パンくずリストは Google のリッチリザルト対象となり、「サイト内で現在どの階層にいるか」を検索エンジンと読者双方に伝える重要な手がかりになります。</p>
<p class="wp-block-paragraph">WordPress 管理画面だけではパンくずリストを細かく制御できないため、<strong><span data-color="#fcb900" style="background: linear-gradient(transparent 60%,rgba(252, 185, 0, 0.7) 0);" class="vk_highlighter">特定のターム(Term)に合わせて階層を変えたい</span></strong>ときはコード側での調整が欠かせません。</p>
<p class="wp-block-paragraph" style="font-size:18px">この記事では、 Lightningで動的にパンくずリストを書き換える方法をご紹介します。</p>
<div class="wp-block-vk-blocks-border-box vk_borderBox vk_borderBox-background-transparent has-text-color has-pale-cyan-blue-color is-style-vk_borderBox-style-solid-kado-tit-tab"><div class="vk_borderBox_title_container has-background has-pale-cyan-blue-background-color"><i class=""></i><h4 class="vk_borderBox_title" id="vk-border-box-bd6bb3b8-a980-459d-bd13-78e170a9c2e8"><strong>この記事は次のような方にお勧めです</strong></h4></div><div class="vk_borderBox_body">
<ul class="wp-block-list">
<li>有料版Lightningテーマを扱うWordPressのサイト開発者</li>
<li>タクソノミーやカスタム投稿の階層を自由に変えたい開発者</li>
</ul>
</div></div>
<p class="wp-block-paragraph" style="font-size:18px">なお、LightningはVektor社の製品です。詳細はこちらをご覧ください。</p>
<div class="wp-block-vk-blocks-blog-card has-border-color is-layout-flow wp-block-vk-blocks-blog-card-is-layout-flow" style="border-color:#0000001f;border-width:1px;border-radius:5px;padding-top:1.5rem;padding-right:1.5rem;padding-bottom:1.5rem;padding-left:1.5rem">
<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-e37897db wp-block-columns-is-layout-flex">
<div class="wp-block-column is-vertically-aligned-top is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.3%"><figure class="wp-block-vk-blocks-blog-card-featured-image"><a href="https://vws.vektor-inc.co.jp/?vwaf=1348" target="_self" ><img src='https://vws.vektor-inc.co.jp/wp-content/uploads/2025/06/vws_ogp-01-1024x538.png' class="has-border-color" style="border-color:#0000001f;border-radius:5px;border-width:1px;object-fit:cover;" /></a></figure></div>
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.6%"><h5 class="wp-block-vk-blocks-blog-card-title"><a href="https://vws.vektor-inc.co.jp/?vwaf=1348" target="_self" >Vektor Web Solutions | 株式会社ベクトル開発のWordPressテーマ・プラグイン・ライセンス販売サイト VWS</a></h5>
<div class="wp-block-vk-blocks-blog-card-excerpt"><p class="wp-block-vk-blocks-blog-card-excerpt__excerpt">人気国産テーマLightningのプロ機能や機能拡張プラグインVK Blocks Proなど、WordPressウェブ制作向けオールインワンライセンスの販売サイト</p></div>
<div class="wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-17ef6164 wp-block-group-is-layout-flex"><figure class="wp-block-vk-blocks-blog-card-site-logo wp-container-content-b8e8afd0"><a href="https://vws.vektor-inc.co.jp" target="_self" ><img src='https://vws.vektor-inc.co.jp/wp-content/uploads/2020/03/cropped-site-icon2020-32x32.png' /></a></figure>
<p class="wp-block-vk-blocks-blog-card-site-title"><a href="https://vws.vektor-inc.co.jp" target="_self" >Vektor Web Solutions</a></p></div>
</div>
</div>
</div>
<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-md--margin-top"></div></div>
<div class="wp-block-vk-blocks-table-of-contents-new vk_tableOfContents vk_tableOfContents-style-default tabs" data-use-custom-levels="false" data-custom-levels=""><div class="tab"><div class="vk_tableOfContents_title">目次</div><input type="checkbox" id="chck-toc-dr16czgr"/><label class="tab-label vk_tableOfContents_openCloseBtn button_status button_status-open" for="chck-toc-dr16czgr" id="vk-tab-label-toc-dr16czgr">CLOSE</label><ul class="vk_tableOfContents_list tab_content-open">
<li class="vk_tableOfContents_list_item vk_tableOfContents_list_item-h-2">
<a href="#vk-htags-78c1bdaf-7629-4266-93b7-6c2920d01cc0" class="vk_tableOfContents_list_item_link">
<span class="vk_tableOfContents_list_item_link_preNumber">1. </span>
パンくずリストはvk_breadcrumb_htmlフィルタで書き換える
</a>
</li>
<li class="vk_tableOfContents_list_item vk_tableOfContents_list_item-h-3">
<a href="#vk-htags-78c1bdaf-7629-4266-93b7-6c2920d01cc0-2" class="vk_tableOfContents_list_item_link">
<span class="vk_tableOfContents_list_item_link_preNumber">1.1. </span>
vk_breadcrumb_htmlフィルタの引数$breadcrumb_html
</a>
</li>
<li class="vk_tableOfContents_list_item vk_tableOfContents_list_item-h-2">
<a href="#vk-htags-e2ef473b-de8a-4e2d-a1d4-d21cf114cf75" class="vk_tableOfContents_list_item_link">
<span class="vk_tableOfContents_list_item_link_preNumber">2. </span>
カスタム投稿やタクソノミーによってパンくずリストを変更する例
</a>
</li>
<li class="vk_tableOfContents_list_item vk_tableOfContents_list_item-h-3">
<a href="#vk-htags-eab98adc-201f-4110-b028-7cce386eb8e3" class="vk_tableOfContents_list_item_link">
<span class="vk_tableOfContents_list_item_link_preNumber">2.1. </span>
VkBreadcrumb::get_array()で構造化されたパンくずリストのデータを扱う
</a>
</li>
<li class="vk_tableOfContents_list_item vk_tableOfContents_list_item-h-4">
<a href="#vk-htags-3f0e075e-a1c3-4be7-b989-732ee664111e" class="vk_tableOfContents_list_item_link">
<span class="vk_tableOfContents_list_item_link_preNumber">2.1.1. </span>
VkBreadcrumb::get_array()
</a>
</li>
<li class="vk_tableOfContents_list_item vk_tableOfContents_list_item-h-2">
<a href="#vk-htags-9417169e-1070-494c-a1a7-95b2608f7d5f" class="vk_tableOfContents_list_item_link">
<span class="vk_tableOfContents_list_item_link_preNumber">3. </span>
まとめ
</a>
</li>
</ul></div></div>
<h2 class="wp-block-heading" id="vk-htags-78c1bdaf-7629-4266-93b7-6c2920d01cc0">パンくずリストは<code>vk_breadcrumb_html</code>フィルタで書き換える</h2>
<p class="wp-block-paragraph">Lightningのパンくずリストは、フィルターフック<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-vivid-red-color"><code><span data-color="#fcb900" style="background: linear-gradient(transparent 60%,rgba(252, 185, 0, 0.7) 0);" class="vk_highlighter">vk_breadcrumb_html</span></code></mark>の引数を書き換えることで変更できます。</p>
<div class="hcb_wrap"><pre class="prism line-numbers lang-php" data-lang="PHP"><code>add_filter(
'vk_breadcrumb_html',
function( $breadcrumb_html ){
return $breadcrumb_html ;
}
)</code></pre></div>
<p class="wp-block-paragraph" style="font-size:18px"></p>
<h3 class="wp-block-heading" id="vk-htags-78c1bdaf-7629-4266-93b7-6c2920d01cc0-2">vk_breadcrumb_htmlフィルタの引数<code>$breadcrumb_html</code></h3>
<p class="wp-block-paragraph"><code><span data-color="#fcb900" style="background: linear-gradient(transparent 60%,rgba(252, 185, 0, 0.7) 0);" class="vk_highlighter">vk_breadcrumb_html</span></code>フィルタの引数<code>$breadcrumb_html</code>は、変数名のとおりパンくずリストのHTML文字列です。</p>
<p class="wp-block-paragraph"><code>$breadcrumb_html</code>は完成した HTML 文字列です。単純置換か一から生成するかで実装難度が大きく変わるため、変更方針を先に決めておくと安全です。</p>
<p class="wp-block-paragraph">以下は<code>$breadcrumb_html</code>の出力例です。</p>
<div class="hcb_wrap"><pre class="prism line-numbers lang-html" data-lang="HTML"><code><!-- [ #breadcrumb ] -->
<div id="breadcrumb" class="breadcrumb">
<div class="container">
<ol class="breadcrumb-list" itemscope itemtype="https://schema.org/BreadcrumbList">
<li class="breadcrumb-list__item breadcrumb-list__item--home" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem">
<a href="http://localhost:8000" itemprop="item">
<i class="fas fa-fw fa-home"></i>
<span itemprop="name">HOME</span>
</a>
<meta itemprop="position" content="1" />
</li>
<li class="breadcrumb-list__item" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem">
<a href="http://localhost:8000/category/aaa" itemprop="item">
<span itemprop="name">aaa</span>
</a>
<meta itemprop="position" content="2" />
</li>
<li class="breadcrumb-list__item" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem">
<span itemprop="name">bbb</span>
<meta itemprop="position" content="3" />
</li>
</ol>
</div>
</div>
<!-- [ /#breadcrumb ] --></code></pre></div>
<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-md--margin-top"></div></div>
<p class="wp-block-paragraph">Lightningのデザインやパンくずリストのリッチリザルトを維持するため、CSSのクラス名やパンくずリストのスキーマ指定は変えずに、aタグのURLや<code>itemprop="name"</code>が設定されたspanタグのテキストを変更します。</p>
<p class="wp-block-paragraph"><code>$breadcrumb_html</code>を変更すればそのままパンくずリストに反映されるため、柔軟性が高いのは開発者にとっては大変ありがたいです。</p>
<h2 class="wp-block-heading" id="vk-htags-e2ef473b-de8a-4e2d-a1d4-d21cf114cf75">カスタム投稿やタクソノミーによってパンくずリストを変更する例</h2>
<p class="wp-block-paragraph">カスタム投稿や、投稿が特定のタクソノミーの時はパンくずリストをカスタマイズしたいことがよくあります。</p>
<p class="wp-block-paragraph">以下は、カスタム投稿やタクソノミーの時にパンくずリストをカスタマイズする例です。</p>
<p class="wp-block-paragraph">なお、このサンプルの関数内は擬似コードですので、そのままコピーしても動作しない点にご留意ください。</p>
<div class="hcb_wrap"><pre class="prism line-numbers lang-php" data-lang="PHP"><code>add_filter(
'vk_breadcrumb_html',
function( $breadcrumb_html ){
if( is_singular( 'my_post' ) ) {
$post = get_post();
$template_param = [
'post_id' => $post->ID,
];
// カスタム投稿の時にパンくずリストを変更
$breadcrumb_html = WPFunctions::render_template( "my-post-breadcrumb",$template_param);
} elseif( is_tax( [ 'my_tax' ] ) ){
// カスタム投稿の時にパンくずリストを変更
$breadcrumb_html = WPFunctions::render_template( "my-tax-breadcrumb",$template_param);
}
return $breadcrumb_html;
}
)</code></pre></div>
<p class="wp-block-paragraph"></p>
<h3 class="wp-block-heading" id="vk-htags-eab98adc-201f-4110-b028-7cce386eb8e3"><code><em>VkBreadcrumb</em>::get_array()</code>で構造化されたパンくずリストのデータを扱う</h3>
<p class="wp-block-paragraph"><code><span data-color="#fcb900" style="background: linear-gradient(transparent 60%,rgba(252, 185, 0, 0.7) 0);" class="vk_highlighter">vk_breadcrumb_html</span></code>フィルタの引数<code>$breadcrumb_html</code>はHTML文字列のため、そのままカスタマイズするには文字列の置換が必要ですが、Ligntningが提供する<code><em>VkBreadcrumb</em>::get_array()</code>を使えば、構造化されたパンくずリストのデータ(連想配列)を使えるため、ゼロからカスタマイズすることが容易になります。</p>
<div class="wp-block-vk-blocks-alert vk_alert alert alert-info has-alert-icon"><div class="vk_alert_icon"><div class="vk_alert_icon_icon"><i class="fa-solid fa-circle-info" aria-hidden="true"></i></div><div class="vk_alert_icon_text"><span>ご案内</span></div></div><div class="vk_alert_content">
<p class="wp-block-paragraph"><code><em>VkBreadcrumb</em>::get_array()</code>は、VK-Blocks(無料/有料)プラグインに含まれています。</p>
</div></div>
<h4 class="wp-block-heading" id="vk-htags-3f0e075e-a1c3-4be7-b989-732ee664111e"><code><em>VkBreadcrumb</em>::get_array()</code></h4>
<p class="wp-block-paragraph"><code><em>VkBreadcrumb</em>::get_array()</code>は、Lightningにおいてパンくずリスト表示時に呼び出すことで構造化されたパンくずリストのデータを取得できるAPIです。</p>
<p class="wp-block-paragraph">例えば、上述のパンくずリストのHTMLですと、以下のような連想配列が取得できます。</p>
<div class="hcb_wrap"><pre class="prism line-numbers lang-php" data-lang="PHP"><code>array(
[0] => array(
"name" => "ホーム",
"id" => "",
"url" => "http://localhost:8000",
"class" => "breadcrumb-list__item--home",
"icon" => "fas fa-fw fa-home"
),
[1] => array(
"name" => "aaa",
"id" => "",
"url" => "http://localhost:8000/category/aaa/",
"class" => "",
"icon" => ""
),
[2] => array(
"name" => "bbb",
"id" => "",
"url" => "",
"class" => "",
"icon" => ""
)
);</code></pre></div>
<p class="wp-block-paragraph"></p>
<p class="wp-block-paragraph">この連想配列を使うことで、「パンくずリストの第2層まで標準の機能を使う」「第3層は独自の名前を表示する」などが可能になります。</p>
<div class="hcb_wrap"><pre class="prism line-numbers lang-php" data-lang="PHP"><code>add_filter(
'vk_breadcrumb_html',
function( $breadcrumb_html ){
if( is_singular( 'my_post' ) ) {
$post = get_post();
$default_breadcrumb_array = VkBreadcrumb::get_array();
// 連想配列をカスタマイズ
updated_breadcrumb_array = ......
$template_param = [
'post_id' => $post->ID,
'breadcrumb_array' => updated_breadcrumb_array,
];
$breadcrumb_html = WPFunctions::render_template( "my-post-breadcrumb",$template_param);
} elseif( is_tax( [ 'my_tax' ] ) ){
// 割愛.....
}
return $breadcrumb_html;
}
)</code></pre></div>
<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-md--margin-top"></div></div>
<div class="wp-block-vk-blocks-alert vk_alert alert alert-warning has-alert-icon"><div class="vk_alert_icon"><div class="vk_alert_icon_icon"><i class="fa-solid fa-triangle-exclamation" aria-hidden="true"></i></div><div class="vk_alert_icon_text"><span>注意点</span></div></div><div class="vk_alert_content">
<p class="wp-block-paragraph"><code>VkBreadcrumb::get_array()</code>は、Lightningのパンくずリストをカスタマイズするために正式提供されたAPIではない可能性があるため、注意してご利用ください。</p>
</div></div>
<h2 class="wp-block-heading" id="vk-htags-9417169e-1070-494c-a1a7-95b2608f7d5f">まとめ</h2>
<p class="wp-block-paragraph">今回は、Lightningが提供するフィルタを使って、パンくずリストを動的に変更する方法をご紹介しました。</p>
<p class="wp-block-paragraph">あまり機会は多くないものの、独自のパンくずリストを表示したい時に、フックするフィルタがないと困ってしまいますが、Lightningはフィルタを提供しているため大変助かります。</p>
<p class="wp-block-paragraph">Lightningのカスタマイズ方法は比較的情報が発信されているほうですが、実際のコードを見てみると、まだまだ便利なアクションフックやフィルターフックが数多くあります。</p>
<p class="wp-block-paragraph">引き続き、Lightningの便利な小ネタを発信していきます。</p>
<p class="wp-block-paragraph">本記事が少しでもお役に立てれば幸いです。</p>
<p class="wp-block-paragraph">最後までお読みいただき、ありがとうございました!</p>
<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://wakatchi.dev/wp-content/uploads/2022/07/wakatchi_icon_2.jpg" alt=""/><figcaption class="vk_balloon_icon_name">わかっち</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content has-background-color has-luminous-vivid-amber-background-color "><span class="vk_balloon_content_before has-text-color has-luminous-vivid-amber-color"></span><span class="vk_balloon_content_after "></span>
<p class="wp-block-paragraph">有料版(Lightning G3 Pro Pack)を含むVektor Passportをご紹介します。よろしければどうぞ</p>
</div></div></div>
<a href="https://vws.vektor-inc.co.jp/product/vektor-passport-3y/?vwaf=1348"><img src="https://vws.vektor-inc.co.jp/wp-content/uploads/2022/11/vk-passport-bnr-3y-vk.png" alt="Vektor Passport(ライセンス期間3年)" width="600" height="600"></a>
こんにちは、サイト管理者のわかっち (@wakatchi_tech) です。
質問者
Lightningのパンくずリストを動的に書き換えたいんだけどな
WordPressのデザインテーマであるLightningは、画面の上部や下部にパンくずリストを表示できます。
パンくずリストは Google のリッチリザルト対象となり、「サイト内で現在どの階層にいるか」を検索エンジンと読者双方に伝える重要な手がかりになります。
WordPress 管理画面だけではパンくずリストを細かく制御できないため、特定のターム(Term)に合わせて階層を変えたいときはコード側での調整が欠かせません。
この記事では、 Lightningで動的にパンくずリストを書き換える方法をご紹介します。
この記事は次のような方にお勧めです
- 有料版Lightningテーマを扱うWordPressのサイト開発者
- タクソノミーやカスタム投稿の階層を自由に変えたい開発者
なお、LightningはVektor社の製品です。詳細はこちらをご覧ください。
人気国産テーマLightningのプロ機能や機能拡張プラグインVK Blocks Proなど、WordPressウェブ制作向けオールインワンライセンスの販売サイト
Lightningのパンくずリストは、フィルターフックvk_breadcrumb_htmlの引数を書き換えることで変更できます。
add_filter(
'vk_breadcrumb_html',
function( $breadcrumb_html ){
return $breadcrumb_html ;
}
)
vk_breadcrumb_htmlフィルタの引数$breadcrumb_htmlは、変数名のとおりパンくずリストのHTML文字列です。
$breadcrumb_htmlは完成した HTML 文字列です。単純置換か一から生成するかで実装難度が大きく変わるため、変更方針を先に決めておくと安全です。
以下は$breadcrumb_htmlの出力例です。
<!-- [ #breadcrumb ] -->
<div id="breadcrumb" class="breadcrumb">
<div class="container">
<ol class="breadcrumb-list" itemscope itemtype="https://schema.org/BreadcrumbList">
<li class="breadcrumb-list__item breadcrumb-list__item--home" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem">
<a href="http://localhost:8000" itemprop="item">
<i class="fas fa-fw fa-home"></i>
<span itemprop="name">HOME</span>
</a>
<meta itemprop="position" content="1" />
</li>
<li class="breadcrumb-list__item" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem">
<a href="http://localhost:8000/category/aaa" itemprop="item">
<span itemprop="name">aaa</span>
</a>
<meta itemprop="position" content="2" />
</li>
<li class="breadcrumb-list__item" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem">
<span itemprop="name">bbb</span>
<meta itemprop="position" content="3" />
</li>
</ol>
</div>
</div>
<!-- [ /#breadcrumb ] -->
Lightningのデザインやパンくずリストのリッチリザルトを維持するため、CSSのクラス名やパンくずリストのスキーマ指定は変えずに、aタグのURLやitemprop="name"が設定されたspanタグのテキストを変更します。
$breadcrumb_htmlを変更すればそのままパンくずリストに反映されるため、柔軟性が高いのは開発者にとっては大変ありがたいです。
カスタム投稿や、投稿が特定のタクソノミーの時はパンくずリストをカスタマイズしたいことがよくあります。
以下は、カスタム投稿やタクソノミーの時にパンくずリストをカスタマイズする例です。
なお、このサンプルの関数内は擬似コードですので、そのままコピーしても動作しない点にご留意ください。
add_filter(
'vk_breadcrumb_html',
function( $breadcrumb_html ){
if( is_singular( 'my_post' ) ) {
$post = get_post();
$template_param = [
'post_id' => $post->ID,
];
// カスタム投稿の時にパンくずリストを変更
$breadcrumb_html = WPFunctions::render_template( "my-post-breadcrumb",$template_param);
} elseif( is_tax( [ 'my_tax' ] ) ){
// カスタム投稿の時にパンくずリストを変更
$breadcrumb_html = WPFunctions::render_template( "my-tax-breadcrumb",$template_param);
}
return $breadcrumb_html;
}
)
vk_breadcrumb_htmlフィルタの引数$breadcrumb_htmlはHTML文字列のため、そのままカスタマイズするには文字列の置換が必要ですが、Ligntningが提供するVkBreadcrumb::get_array()を使えば、構造化されたパンくずリストのデータ(連想配列)を使えるため、ゼロからカスタマイズすることが容易になります。
VkBreadcrumb::get_array()は、VK-Blocks(無料/有料)プラグインに含まれています。
VkBreadcrumb::get_array()は、Lightningにおいてパンくずリスト表示時に呼び出すことで構造化されたパンくずリストのデータを取得できるAPIです。
例えば、上述のパンくずリストのHTMLですと、以下のような連想配列が取得できます。
array(
[0] => array(
"name" => "ホーム",
"id" => "",
"url" => "http://localhost:8000",
"class" => "breadcrumb-list__item--home",
"icon" => "fas fa-fw fa-home"
),
[1] => array(
"name" => "aaa",
"id" => "",
"url" => "http://localhost:8000/category/aaa/",
"class" => "",
"icon" => ""
),
[2] => array(
"name" => "bbb",
"id" => "",
"url" => "",
"class" => "",
"icon" => ""
)
);
この連想配列を使うことで、「パンくずリストの第2層まで標準の機能を使う」「第3層は独自の名前を表示する」などが可能になります。
add_filter(
'vk_breadcrumb_html',
function( $breadcrumb_html ){
if( is_singular( 'my_post' ) ) {
$post = get_post();
$default_breadcrumb_array = VkBreadcrumb::get_array();
// 連想配列をカスタマイズ
updated_breadcrumb_array = ......
$template_param = [
'post_id' => $post->ID,
'breadcrumb_array' => updated_breadcrumb_array,
];
$breadcrumb_html = WPFunctions::render_template( "my-post-breadcrumb",$template_param);
} elseif( is_tax( [ 'my_tax' ] ) ){
// 割愛.....
}
return $breadcrumb_html;
}
)
VkBreadcrumb::get_array()は、Lightningのパンくずリストをカスタマイズするために正式提供されたAPIではない可能性があるため、注意してご利用ください。
今回は、Lightningが提供するフィルタを使って、パンくずリストを動的に変更する方法をご紹介しました。
あまり機会は多くないものの、独自のパンくずリストを表示したい時に、フックするフィルタがないと困ってしまいますが、Lightningはフィルタを提供しているため大変助かります。
Lightningのカスタマイズ方法は比較的情報が発信されているほうですが、実際のコードを見てみると、まだまだ便利なアクションフックやフィルターフックが数多くあります。
引き続き、Lightningの便利な小ネタを発信していきます。
本記事が少しでもお役に立てれば幸いです。
最後までお読みいただき、ありがとうございました!
わかっち
有料版(Lightning G3 Pro Pack)を含むVektor Passportをご紹介します。よろしければどうぞ