SWELLの投稿記事・カテゴリー・タグのパンくずに、案内用の固定ページを1段追加する例です。たとえば「ホーム → WordPressカスタマイズ → ブログ → カテゴリー → 記事」のようにします。URLや投稿の親子関係を変更する処理ではありません。
実際に記事群への入口となる固定ページを指定してください。検索順位を上げる目的だけで、内容と関係のない階層を足す用途には向きません。既存の投稿ページやカテゴリーの階層はSWELLの出力を残します。
子テーマのfunctions.phpに追加するコード
変更前にファイルをバックアップしてください。旧版のmotoki_swell_breadcrumb_add関数とそのadd_filterは外し、次のコードへ置き換えます。PHP開始タグがあるファイルへ追記するときは、先頭の<?phpを重ねないでください。
<?php
add_filter( 'swell_breadcrumb_list_data', 'waza_breadcrumb_parent' );
function waza_breadcrumb_parent( $list ) {
if ( ! is_array( $list ) || ! ( is_singular( 'post' ) || is_category() || is_tag() ) ) {
return $list;
}
$page = get_page_by_path( 'wordpress-customize', OBJECT, 'page' );
if ( ! $page || 'publish' !== $page->post_status || $page->post_password ) { return $list; }
$url = get_permalink( $page->ID );
if ( ! $url ) { return $list; }
foreach ( $list as $item ) {
if ( isset( $item['url'] ) && $item['url'] === $url ) { return $list; }
}
// SWELLのホームリンクはこの配列の外で出力されます。
array_unshift( $list, array( 'url' => $url, 'name' => get_the_title( $page->ID ) ) );
return $list;
}
wordpress-customizeを追加したい固定ページのスラッグに変更します。階層のある固定ページならparent/childのようにパスを指定します。公開済みでパスワード保護のない固定ページだけを使います。ページが見つからないときは既存のパンくずをそのまま返します。
適用範囲
対象は通常の投稿の個別ページ、カテゴリー、タグです。固定ページ、カスタム投稿タイプ、検索結果、404などは変更しません。SWELLが生成した配列を丸ごと再作成せず、先頭へ案内ページを追加します。SWELL 2.19.0ではホームリンクを配列の外で出力するため、追加位置はホームの直後になります。
同じURLがすでに含まれる場合は重複追加しません。ブログを表示する「投稿ページ」が元のパンくずにある場合も、その項目は残ります。追加した固定ページが既存の階層と意味上重複しないか、導入前に確認してください。
確認した内容と導入時の確認
2026年10月1日の関数単位の確認に続き、実WordPress・SWELLで投稿・カテゴリー・タグのパンくずと構造化データの並びを確認しました。
検証環境で、PCとスマホの投稿・カテゴリー・タグを開き、案内ページのリンク先と既存階層を確認してください。Tabでリンクへ移動してEnterで開けること、長いページ名がはみ出さないこと、出力されたBreadcrumbListの順序も確認します。固定ページと検索結果のパンくずが変わらないことも確認してください。
長い案内名とリンク先を実画面で確認する
2026年10月3日、WordPress 7.1.2・SWELL 2.19.0の隔離環境で、長い案内ページ名を含むパンくずを1280px幅で確認しました。
ホームの直後の案内リンクをEnterで開き、案内用固定ページのタイトルと本文に到着することを確認しました。
この例では、既存の親カテゴリーと子カテゴリーの並びもそのまま表示されました。
導入先では、案内用固定ページに関連記事への入口を作り、表示するページ名と移動先の内容を一致させてください。
長い名称は導入先のスマホ幅でも確認し、文字が切れる場合は案内ページの名称を短くします。
今回の実画面検証はPCで行っており、スマホの長いラベル表示は未確認です。

戻し方
追加したwaza_breadcrumb_parent関数とadd_filterを取り除き、キャッシュを更新します。表示が戻らなければバックアップとの差分を確認してください。旧コードを併用すると、別のフィルターで階層が作り直されることがあります。
旧版の外部GitHubコードと過去の画面例は今回の実装と同期していません。実装には本稿のコードを使用してください。
よくある質問:SWELLでパンくずの表示を追加するとき
このコードは、パンくずに何を追加しますか?
記事では、SWELLの投稿記事・カテゴリー・タグのパンくずに、案内用の固定ページを1段追加する例です。URLや投稿の親子関係を変更する処理ではありません。
どのページに適用されますか?
対象は通常の投稿の個別ページ、カテゴリー、タグです。固定ページ、カスタム投稿タイプ、検索結果、404などは変更しません。
追加した案内ページは、パンくずのどこに入りますか?
記事では、SWELLが生成した配列を丸ごと再作成せず、先頭へ案内ページを追加します。SWELL 2.19.0ではホームリンクを配列の外で出力するため、追加位置はホームの直後になります。
どんな固定ページを指定すればよいですか?
実際に記事群への入口となる固定ページを指定してください。記事では、検索順位を上げる目的だけで、内容と関係のない階層を足す用途には向かないとされています。公開済みでパスワード保護のない固定ページだけを使い、ページが見つからないときは既存のパンくずをそのまま返します。
コードのどこを自分のサイトに合わせて変えますか?
wordpress-customizeの部分を、追加したい固定ページのスラッグに変更します。階層のある固定ページならparent/childのようにパスを指定します。
すでに同じページがパンくずにある場合は、どうなりますか?
同じURLがすでに含まれる場合は重複追加しません。ブログを表示する「投稿ページ」が元のパンくずにある場合も、その項目は残ります。追加した固定ページが既存の階層と意味上重複しないか、導入前に確認してください。
以前のコードを使っている場合は、どうしますか?
変更前にファイルをバックアップし、旧版のmotoki_swell_breadcrumb_add関数とそのadd_filterは外して、記事のコードへ置き換えます。PHP開始タグがあるファイルへ追記するときは、先頭のPHP開始タグを重ねないでください。旧コードを併用すると、別のフィルターで階層が作り直されることがあります。
元に戻すには、どうしますか?
追加したwaza_breadcrumb_parent関数とadd_filterを取り除き、キャッシュを更新します。表示が戻らなければバックアップとの差分を確認してください。
どこまで動作確認されていますか?
記事では、2026年10月3日にWordPress 7.1.2・SWELL 2.19.0の隔離環境で、長い案内ページ名を含むパンくずを1280px幅で確認し、ホーム直後の案内リンクをEnterで開けることを確認したとされています。この実画面検証はPCで行っており、スマホの長いラベル表示は未確認です。



