Amazon10/19まで!プライム感謝祭開催中! セール会場へ

SWELL│パンくずの表示を追加するカスタマイズ

swell-breadcrumb-add

SWELLの投稿記事・カテゴリー・タグのパンくずに、案内用の固定ページを1段追加する例です。たとえば「ホーム → WordPressカスタマイズ → ブログ → カテゴリー → 記事」のようにします。URLや投稿の親子関係を変更する処理ではありません。

実際に記事群への入口となる固定ページを指定してください。検索順位を上げる目的だけで、内容と関係のない階層を足す用途には向きません。既存の投稿ページやカテゴリーの階層はSWELLの出力を残します。

目次

著者

WEB制作をしているデジタルノマド
WordPressのカスタマイズが好きで、色々と自作しています。

WordPressのカスタマイズに困ったらご相談ください!

子テーマの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で行っており、スマホの長いラベル表示は未確認です。

実SWELLで長い案内名をホーム直後へ追加したパンくず
長い案内名を含むパンくずと既存の親子カテゴリー(2026/10/03撮影、WordPress 7.1.2・SWELL 2.19.0の隔離環境、PC1280px)

戻し方

追加した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で行っており、スマホの長いラベル表示は未確認です。

  • URLをコピーしました!

実装を任せたい方へ

SWELLのカスタマイズ代行

記事のコードをそのまま使うのが不安な場合や、サイトに合わせた調整が必要な場合は当社が実装します。1時間 ¥8,000〜(税込)。テーマ更新に強い書き方で納品します。

WAZAの有料記事のサブスクリプションも開始しました。

サービス

Service

WordPressサイトのカスタマイズのサービスに関心がありましたら、ぜひ詳細をご覧ください。

目次