Amazonで商品を見る セール会場へ

SWELLのフック一覧と使い方|アクション・フィルターの基本

SWELLでカスタマイズをするときに欠かせないのがアクションフックとフィルターフックです。

開発者が事前に、指定箇所が変更ができるようにフックをたくさん仕込んでおり、それを利用して上書きしてSWELLをカスタマイズできます。

WordPressのカスタマイズでよく使うので、一度SWELLのフックを全て洗い出してみました。

フック一覧は2024年3月の調査記録です。現行SWELLの全件・引数・ファイル位置との照合は未完了のため、使用中のテーマソースで確認してください。2026年9月30日に冒頭の基本例を修正しました。

ちなみにSWELLはフックだけでなく関数も上書きできます。

詳細は下記に記事にて

目次

著者

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

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

アクションフック・フィルターフックの使い方

先に簡潔にアクションフック・フィルターフックについて説明します。

アクションフックフィルターフック
特定のイベントが発生したときに何かを実行するために使用データを加工するために使用し、加工されたデータを返却する
例: 投稿が公開されたときにメールを送信する例: 投稿の内容を加工する
関数: do_action() でトリガー、add_action() で登録関数: apply_filters() でトリガー、add_filter() で登録
戻り値: なし戻り値: 加工されたデータ

アクションフック・フィルターフックの書き方の例

まず下記の場所にアクションフックまたはフィルターフックを記載したPHPのコードを記載します。

検証環境で、子テーマのfunctions.phpまたはCode Snippetsのどちらか1か所へ追加します。Code SnippetsではPHP開始タグを付けません。親テーマの直接編集は避け、変更前のコードを保存してください。戻す場合は追加した関数と登録行を外すか、該当スニペットを停止します。

アクションフック例

function motoki_example1(){
    echo '<!-- テスト! -->';
}
add_action( 'wp_head', 'motoki_example1',999 );

フィルターフック例

function waza_hook_excerpt_more( $more ) {
    return ' …';
}
add_filter( 'excerpt_more', 'waza_hook_excerpt_more', 10, 1 );

アクションは決められた箇所で処理を実行し、フィルターは受け取った値を加工して返します。違いは実行時刻だけではなく、戻り値を呼び出し元が使うかどうかです。

wp_headはアクションです。フィルターの例には、WordPress標準のexcerpt_moreを使います。自動生成した抜粋が切り詰められる場合の末尾を「 …」に変える例で、手動入力の抜粋やテーマ独自の抜粋処理には反映されないことがあります。仕様はWordPressのフック解説とexcerpt_moreの公式資料を参照してください。

フックを使ってコンテンツを挿入する場所まとめ

よく使うフックをまとめました。

投稿フックとパンくずをPjaxで切り替えて確認する

確認する対象期待する表示
通常の投稿へ移動タイトル前に移動先の投稿IDを1回表示
固定ページへ移動投稿専用フックの表示を追加しない
子カテゴリーへ移動ホーム・親・子の順序を残し、子の表記だけ変更
親カテゴリーへ移動子カテゴリー向けの変更を引き継がない

この一覧はフックの候補を探すために使い、すべての例をまとめて登録しないでください。

投稿タイトル前の例は通常の投稿へ適用し、固定ページではテーマ側の呼び出し箇所を確認してから選びます。

2026年10月3日のWordPress 7.1.2 / SWELL 2.19.0では、固定ページから実Pjaxで2つの投稿へ移動し、それぞれの投稿IDが1回ずつ表示されることを確認しました。

パンくずの例では、親のある子カテゴリーへ移動してもホーム・親・子の3項目を維持し、子だけに「の案内」が付きました。

親のリンクをEnterキーで開くと、親の表示名に「の案内」は付かず、記事一覧も親カテゴリーへ切り替わりました。

Pjaxの履歴では取得済みのHTMLが使われる場合があるため、PHPが毎回新しく実行されたと表示結果だけで判断しないでください。

標準画像ブロックの一部だけを遅延読込から除外する方法は、画像ブロックのLazyLoad除外で扱っています。

戻すときは、今回試したフックの登録だけを無効化し、投稿と固定ページを別々に読み直します。

親のある子カテゴリーのパンくずと記事一覧
親子の階層を残し、子の表記だけを変更した実Pjaxの画面。2026年10月3日、隔離したWordPress 7.1.2 / SWELL 2.19.0で撮影。

SWELLのフック一覧(2024年3月の調査記録)

まずはSWELLで設定されているアクションフック・フィルターフックを全て調べてリスト化してみました。

SWELLのフックの調べ方

SWELLのフックを調べるのは簡単です。

String Locatorというプラグインを使って、テーマ内のコードを検索します。

正規表現も使うことができるので非常に便利なのでおすすめです。

今回は検索をかけてSWELL用に仕込まれているフックをすべて洗い出してみました。

プラグインのString Locatorを使ってテーマ内のコードを検索し、SWELLのフックを洗い出す様子。

以下、検索で洗い出したSWELLのフックをまとめています。

調査時のSWELLアクションフック4個

SWELLのアクションフックはdo_action( 'swell_と記載されています。

フック名ファイルの場所
swell_after_copyrightwp-content/themes/swell/parts/footer/footer_contents.php
swell_inner_main_visualwp-content/themes/swell/parts/top/main_visual.php
swell_before_post_headwp-content/themes/swell/single.php
swell_before_post_thumbwp-content/themes/swell/single.php

調査時のSWELLフィルターフック75個

SWELLのフィルターフックはapply_filters( 'swellと記載されています。

フック名ファイルの場所
swell_post_content_classwp-content/themes/swell/tmp/front.php
swell_post_list_type_on_archivewp-content/themes/swell/archive.php
swell_post_list_type_on_termwp-content/themes/swell/archive-term.php
swell_breadcrumb_list_datawp-content/themes/swell/parts/breadcrumb.php
swell_mv_single_lazy_offwp-content/themes/swell/parts/archive/term_head.php
swell_term_thumbnail_lazy_offwp-content/themes/swell/parts/archive/term_head.php
swell_post_slider_lazy_offwp-content/themes/swell/parts/top/post_slider.php
swell_infobar_datawp-content/themes/swell/parts/header/info_bar.php
swell_pickup_post_argswp-content/themes/swell/parts/post_list/loop_by_slider.php
swell_post_list_404_textwp-content/themes/swell/parts/post_list/loop_main.php
swell_posts_404_textwp-content/themes/swell/parts/post_list/loop_sub.php
swell_twitter_to_xwp-content/themes/swell/parts/icon_list.php
swell_top_area_lazy_offwp-content/themes/swell/parts/top_title_area.php
swell_sns_cta_messagewp-content/themes/swell/parts/single/sns_cta.php
swell_related_post_maxnumwp-content/themes/swell/parts/single/related_post_list.php
swell_related_post_argswp-content/themes/swell/parts/single/related_post_list.php
swell_related_post_404_textwp-content/themes/swell/parts/single/related_post_list.php
swell_post_list_type_on_searchwp-content/themes/swell/search.php
swell_post_list_cat_datawp-content/themes/swell/classes/SWELL_THEME/Parts/Post_List.php
swell_json_ld__organizationwp-content/themes/swell/classes/Json_Ld.php
swell_json_ld__websitewp-content/themes/swell/classes/Json_Ld.php
swell_json_ld__webpagewp-content/themes/swell/classes/Json_Ld.php
swell_json_ld__collectionpagewp-content/themes/swell/classes/Json_Ld.php
swell_json_ld__articlewp-content/themes/swell/classes/Json_Ld.php
swell_json_ld__authorwp-content/themes/swell/classes/Json_Ld.php
swell_json_ldwp-content/themes/swell/classes/Json_Ld.php
swell_get_the_term_linkswp-content/themes/swell/classes/SWELL_FUNC.php
swell_parts_catchphrasewp-content/themes/swell/classes/SWELL_PARTS.php
swell_parts_head_logowp-content/themes/swell/classes/SWELL_PARTS.php
swell_parts_page_titlewp-content/themes/swell/classes/SWELL_PARTS.php
swell_parts_term_titlewp-content/themes/swell/classes/SWELL_PARTS.php
swell_post_thumbnail_lazy_offwp-content/themes/swell/classes/SWELL_PARTS.php
swell_parts_post_thumbnailwp-content/themes/swell/classes/SWELL_PARTS.php
swell_parts_scroll_arrowwp-content/themes/swell/classes/SWELL_PARTS.php
swell_show_term_navigationwp-content/themes/swell/classes/SWELL_PARTS.php
swell_do_blog_partswp-content/themes/swell/classes/Utility/Parts.php
swell_frame_classwp-content/themes/swell/classes/Utility/Get.php
swell_get_archive_datawp-content/themes/swell/classes/Utility/Get.php
swell_get_the_terms_datawp-content/themes/swell/classes/Utility/Get.php
swell_get_sns_cta_datawp-content/themes/swell/classes/Utility/Get.php
swell_get_search_titlewp-content/themes/swell/classes/Utility/Get.php
swell_get_tax_of_post_typewp-content/themes/swell/classes/Utility/Get.php
swell_get_search_terms_status(2.19.0では呼び出し無効)wp-content/themes/swell/classes/Utility/Get.php
swell_is_show_ttltopwp-content/themes/swell/classes/Utility/Status.php
swell_is_show_indexwp-content/themes/swell/classes/Utility/Status.php
swell_is_show_toc_adwp-content/themes/swell/classes/Utility/Status.php
swell_is_show_sidebarwp-content/themes/swell/classes/Utility/Status.php
swell_is_show_commentswp-content/themes/swell/classes/Utility/Status.php
swell_is_show_pickup_bannerwp-content/themes/swell/classes/Utility/Status.php
swell_is_show_page_linkswp-content/themes/swell/classes/Utility/Status.php
swell_is_separate_csswp-content/themes/swell/classes/Utility/Status.php
swell_root_attrswp-content/themes/swell/classes/Utility/Attrs.php
swell_body_attrswp-content/themes/swell/classes/Utility/Attrs.php
swell_content_attrswp-content/themes/swell/classes/Utility/Attrs.php
swell_lp_content_attrswp-content/themes/swell/classes/Utility/Attrs.php
swell_update_json_namewp-content/themes/swell/classes/Utility/Others.php
swell_remove_url_to_cardwp-content/themes/swell/lib/content_filter.php
swell_delay_js_prevent_pageswp-content/themes/swell/lib/rewrite_html.php
swell_delay_js_listwp-content/themes/swell/lib/rewrite_html.php
swell_table_scroll_hintwp-content/themes/swell/lib/gutenberg/render_hook/core_table.php
swell_blocks_rss_cache_timewp-content/themes/swell/lib/gutenberg/block/rss.php
swell_side_meta_screenswp-content/themes/swell/lib/post_meta/meta_side.php
swell_code_meta_screenswp-content/themes/swell/lib/post_meta/meta_code.php
swell_hide_fse_blockswp-content/themes/swell/lib/load/block_assets.php
swell_custom_formatswp-content/themes/swell/lib/load/admin.php
swell_custom_format_setswp-content/themes/swell/lib/load/admin.php
swell_toc_targetwp-content/themes/swell/lib/load/front.php
swell_term_meta_screenswp-content/themes/swell/lib/term_meta.php
swell_head_logowp-content/themes/swell/lib/pluggable_parts/header_parts.php
swell_head_logo_topwp-content/themes/swell/lib/pluggable_parts/header_parts.php
swell_head_logo_sizeswp-content/themes/swell/lib/pluggable_parts/header_parts.php

SWELLのアクションフックの解説

まずは数少ないSWELLのアクションフックから解説していきます。

swell_after_copyright

このフックは、ウェブサイトのフッターにあるコピーライト情報の直後に、追加のコンテンツや情報を挿入するために使用されます。

このフックを利用することで、コピーライト情報の後に任意のテキスト、リンク、画像などを簡単に追加できます。

add_action( 'swell_after_copyright', function() {
    echo '<div>© 2024 MOTOKI LLC. All Rights Reserved. | <a href="https://example.com/privacy-policy">Privacy Policy</a></div>';
});

swell_inner_main_visual

このフックは、メインビジュアルの内部にカスタムコンテンツを挿入するために使用されます。

このフックを利用することで、メインビジュアルの中に任意のテキスト、画像、スライダーなどを簡単に追加できます。

swell_inner_main_visualには投稿IDの引数が渡されません。表示を特定のページに限定する場合は、コールバック内でis_front_page()やis_page()などの条件を確認します。

以下の状態は表示されないので注意!

  • メインビジュアルが表示しないの場合
  • メインビジュアルの高さがウィンドウにフィットさせるの場合

テキストを表示したい場合

add_action( 'swell_inner_main_visual', function() {
    echo '<div class="custom-text">WordPress専門のWeb制作会社です!</div>';
});

ブログパーツを表示したい場合

add_action( 'swell_inner_main_visual', function() {
    $part_id = 25427; // 導入先の公開済みブログパーツIDへ変更
    if ( ! shortcode_exists( 'blog_parts' ) ) return;
    $part = get_post( $part_id );
    if ( ! $part || $part->post_type !== 'blog_parts' ||
        $part->post_status !== 'publish' || $part->post_password !== '' ) return;
    echo do_shortcode( '[blog_parts id="' . absint( $part_id ) . '"]' );
});

25427は導入先の公開済みブログパーツIDへ変更してください。PHPの実行用ショートコードは単一の角かっこです。二重角かっこにするとパーツ本文ではなくショートコードの文字列が出ます。掲載コードの角かっこは文字参照で保護し、コピー先での実行と記事上のコード表示を分けています。

swell_before_post_head

SWELL 2.19.0のswell_before_post_headは、通常の投稿でタイトルやメタ情報を出す直前に呼ばれます。

固定ページの同じ位置で、このフックが呼ばれるとは限りません。

これを利用して、投稿のヘッドセクションの前にカスタムコンテンツや広告、注意書きなどを挿入できます。

$post_id パラメータを利用することで、特定の投稿に対してのみカスタムテキストを表示することも可能です。

add_action( 'swell_before_post_head', function( $post_id ) {
    echo '<div class="custom-text">これは投稿ヘッダーの前のカスタム テキストです。投稿ID: ' . esc_html( $post_id ) . '</div>';
});

上記のコードは投稿のヘッダーの前に「これは投稿ヘッダーの前のカスタム テキストです。投稿ID: [投稿ID]」というカスタムテキストが追加されます。

swell_before_post_thumb

このフックは、投稿の個別ページでアイキャッチ画像を表示する直前に実行されます。アイキャッチを非表示にしている投稿では実行されず、固定ページの標準テンプレートにもこのフックはありません。

これを利用して、アイキャッチ画像の前にカスタムコンテンツや広告、注釈などを挿入できます。

add_action( 'swell_before_post_thumb', function( $post_id ) {
    echo '<div class="custom-text">これは投稿のサムネイルの前にあるカスタム テキストです。投稿ID: ' . esc_html( $post_id ) . '</div>';
});

上記のコードは投稿のヘッダーの前に「これは投稿のサムネイルの前にあるカスタム テキストです。投稿ID: [投稿ID]」というカスタムテキストが追加されます。

SWELLのフィルターフックの解説

続いてSWELLのフィルターフックの解説です。

かなりボリュームがあります。

構造化データ関連

swell_json_ld

SWELL 2.19.0が組み立てた構造化データ全体の配列を受け取ります。次の例は、その中のWebSiteがある場合だけ、説明文をサイトのキャッチフレーズへ設定します。OrganizationやArticleなど、ほかのデータは残します。標準の説明と同じなら出力は変わりません。

WebSiteの説明だけを変えるなら、後述のswell_json_ld__websiteを使う例でも対応できます。同じ目的で両方を登録する必要はありません。子テーマのfunctions.phpまたはPHPスニペットへ一度だけ追加し、元へ戻す場合は追加したフィルターを削除・無効化してキャッシュを削除します。

add_filter( 'swell_json_ld', function( $json_lds ) {
    if ( ! is_array( $json_lds ) ||
        ! isset( $json_lds['WebSite'] ) ||
        ! is_array( $json_lds['WebSite'] ) ||
        empty( $json_lds['WebSite'] ) ) {
        return $json_lds;
    }
    $description = get_option( 'blogdescription', '' );
    if ( ! is_string( $description ) ) {
        return $json_lds;
    }
    $description = trim( wp_strip_all_tags( $description ) );
    if ( $description !== '' ) {
        $json_lds['WebSite']['description'] = $description;
    }
    return $json_lds;
} );

swell_json_ld__article

以下の6例は、WordPress標準の情報などから構造化データのdescriptionを設定します。Schema.orgのdescriptionはThingに使える説明プロパティです。additionalPropertyはすべての型へ任意に付ける項目ではないため、旧例を置き換えました。必要な例だけを子テーマのfunctions.phpまたはPHPスニペットへ一度だけ追加します。戻す場合は該当フィルターを削除・無効化し、キャッシュを削除してください。検索結果の説明文やリッチリザルトの表示を保証するものではありません。

投稿の「抜粋」をArticleの説明へ使います。抜粋が空なら元のデータを保ちます。 HTMLタグを除いた文字列をdescriptionへ設定します。ACFは不要です。

add_filter( 'swell_json_ld__article', function( $data, $post_id ) {
    if ( ! is_array( $data ) || empty( $data ) ) {
        return $data;
    }
    $description = get_post_field( 'post_excerpt', $post_id );
    if ( ! is_string( $description ) ) {
        return $data;
    }
    $description = trim( wp_strip_all_tags( $description ) );
    if ( $description !== '' ) {
        $data['description'] = $description;
    }
    return $data;
}, 10, 2 );

swell_json_ld__author

著者の「プロフィール情報」を説明へ使います。著者データの型はPersonまたはOrganizationで、Authorという型を追加する例ではありません。 HTMLタグを除いた文字列をdescriptionへ設定します。ACFは不要です。

add_filter( 'swell_json_ld__author', function( $data, $author_id ) {
    if ( ! is_array( $data ) || empty( $data ) ) {
        return $data;
    }
    $description = get_user_meta( $author_id, 'description', true );
    if ( ! is_string( $description ) ) {
        return $data;
    }
    $description = trim( wp_strip_all_tags( $description ) );
    if ( $description !== '' ) {
        $data['description'] = $description;
    }
    return $data;
}, 10, 2 );

swell_json_ld__collectionpage

カテゴリー・タグ・カスタムタクソノミーの説明をCollectionPageの説明へ使います。それ以外のアーカイブでは変更しません。 HTMLタグを除いた文字列をdescriptionへ設定します。ACFは不要です。

add_filter( 'swell_json_ld__collectionpage', function( $data ) {
    if ( ! is_array( $data ) || empty( $data ) ) {
        return $data;
    }
    $description = ( is_category() || is_tag() || is_tax() ) ? term_description() : '';
    if ( ! is_string( $description ) ) {
        return $data;
    }
    $description = trim( wp_strip_all_tags( $description ) );
    if ( $description !== '' ) {
        $data['description'] = $description;
    }
    return $data;
} );

swell_json_ld__organization

組織の説明を指定する例です。空文字を、サイト上で公開している事実に沿った説明へ置き換えてください。未入力なら変更しません。 HTMLタグを除いた文字列をdescriptionへ設定します。ACFは不要です。

add_filter( 'swell_json_ld__organization', function( $data ) {
    if ( ! is_array( $data ) || empty( $data ) ) {
        return $data;
    }
    $description = '';
    if ( ! is_string( $description ) ) {
        return $data;
    }
    $description = trim( wp_strip_all_tags( $description ) );
    if ( $description !== '' ) {
        $data['description'] = $description;
    }
    return $data;
} );

swell_json_ld__webpage

個別投稿・固定ページの抜粋をWebPageの説明へ使います。アーカイブでは変更しません。 HTMLタグを除いた文字列をdescriptionへ設定します。ACFは不要です。

add_filter( 'swell_json_ld__webpage', function( $data ) {
    if ( ! is_array( $data ) || empty( $data ) ) {
        return $data;
    }
    $description = is_singular() ? get_post_field( 'post_excerpt', get_queried_object_id() ) : '';
    if ( ! is_string( $description ) ) {
        return $data;
    }
    $description = trim( wp_strip_all_tags( $description ) );
    if ( $description !== '' ) {
        $data['description'] = $description;
    }
    return $data;
} );

swell_json_ld__website

サイトの「キャッチフレーズ」をWebSiteの説明へ使います。SWELL標準と同じ値なら表示データは変わりません。 HTMLタグを除いた文字列をdescriptionへ設定します。ACFは不要です。

add_filter( 'swell_json_ld__website', function( $data ) {
    if ( ! is_array( $data ) || empty( $data ) ) {
        return $data;
    }
    $description = get_option( 'blogdescription', '' );
    if ( ! is_string( $description ) ) {
        return $data;
    }
    $description = trim( wp_strip_all_tags( $description ) );
    if ( $description !== '' ) {
        $data['description'] = $description;
    }
    return $data;
} );

画像関連

swell_mv_single_lazy_off

このフィルターフックは、SWELL テーマでの投稿記事やメインビジュアル(スライダー)の画像の遅延読み込みをオフにするために使用されます。

これを利用して、メインビジュアルの画像の遅延読み込みを無効化することができます。

add_filter( 'swell_mv_single_lazy_off', function( $is_lazy_off ) {
    // メインビジュアルの画像の遅延読み込みをオフにする
    $is_lazy_off = true;
    
    return $is_lazy_off;
});

swell_post_slider_lazy_off

このフィルターフックは、SWELL テーマでのポストスライダーの背景画像の遅延読み込みをオフにするために使用されます。

これを利用して、ポストスライダーの背景画像の遅延読み込みを無効化することができます。

add_filter( 'swell_post_slider_lazy_off', function( $is_lazy_off ) {
    // ポストスライダーの背景画像の遅延読み込みをオフにする
    $is_lazy_off = true;
    
    return $is_lazy_off;
});

swell_post_thumbnail_lazy_off

このフィルターフックは、SWELL テーマ内で定義されている SWELL_PARTS::post_thumbnail メソッド内で使用されます。このメソッドは、投稿のアイキャッチ画像を取得し、表示するために使用されます。

swell_post_thumbnail_lazy_off フィルターフックを使用することで、アイキャッチ画像の遅延読み込み(lazy loading)の動作をカスタマイズすることができます。

add_filter( 'swell_post_thumbnail_lazy_off', '__return_true' );

swell_term_thumbnail_lazy_off

SWELL 2.19.0では、このフィルターへ渡される初期値はtrueです。次の例は対象タームでtrueを返すため、標準状態では表示に変化はありません。別のカスタマイズで遅延読み込みが有効になっている場合に、対象だけ無効へ戻す考え方を示しています。カスタムタクソノミー名とタームのスラッグは自分の設定に置き換えてください。

このフィルターフックは、SWELL テーマでのタームアーカイブページに表示されるヘッド部分の画像の遅延読み込みをオフにするために使用されます。

これを利用して、特定の条件下で画像の遅延読み込みを無効化することができます。

add_filter( 'swell_term_thumbnail_lazy_off', function( $is_lazy_off ) {
    // 指定したカスタムタクソノミーのタームの場合
    if ( is_tax( 'カスタムタクソノミー', '特定のタームスラッグ' ) ) {
        // 遅延読み込みをオフにする
        $is_lazy_off = true;
    }
    
    return $is_lazy_off;
});

swell_top_area_lazy_off

このフィルターフックは、SWELL テーマでのトップエリア(タイトルエリア)の背景画像の遅延読み込み(lazy loading)を制御するために使用されます。

デフォルトでは、背景画像は遅延読み込みが有効になっていますが、このフックを利用して遅延読み込みを無効化することができます。

add_filter( 'swell_top_area_lazy_off', function( $value ) {
    // トップエリアの背景画像の遅延読み込みを無効化
    return true;
});

swell_parts_post_thumbnail

このフィルターフックは、SWELL テーマで投稿のアイキャッチ画像を取得する際に使用されます。このフックを利用することで、アイキャッチ画像のHTML構造や属性をカスタマイズすることができます。

add_filter( 'swell_parts_post_thumbnail', function( $html, $post_id, $is_youtube ) {
    // カスタム投稿タイプ「news」の場合、アイキャッチ画像を非表示にする
    if ( get_post_type( $post_id ) === 'news' ) {
        return '';
    }

    // それ以外の場合は通常通りアイキャッチ画像を表示
    return $html;
}, 10, 3 );

文言・テキスト関連

swell_searchform_placeholder

このフィルターフックは、SWELL テーマでの検索フォームのプレースホルダーテキストを変更するために使用されます。

これを利用して、検索フォームのプレースホルダーに表示されるテキストを動的に変更することができます。

add_filter( 'swell_searchform_placeholder', function( $placeholder ) {
    // プレースホルダーテキストをカスタマイズ
    $placeholder = __( '記事を検索する', 'swell' );

    return $placeholder;
});

swell_breadcrumb_list_data

このフィルターフックは、SWELL テーマでのパンくずリストのデータを変更するために使用されます。

次の例は、指定したカテゴリーのアーカイブだけで末尾の表示名に「の案内」を付けます。

特定のカテゴリースラッグを自分のカテゴリーのスラッグへ置き換え、Code Snippetsか子テーマのfunctions.phpのどちらか1か所へ追加してください。

以前の例は現在のカテゴリーの後ろに別ページを追加しており、実際とは異なる階層がパンくずに並びました。

旧例を使っている場合は、そのフィルターを停止してから置き換えてください。

修正例は配列の末尾にあるnameだけを変更し、urlと親項目の順序を保ちます。

検証環境では対象カテゴリーのパンくずが2項目のまま表示され、末尾はリンクなしの「カテゴリー名の案内」になりました。

対象外のカテゴリーでは表示名が変わらず、階層も維持されました。

カテゴリー名自体やアーカイブの見出しを変更するコードではありません。

戻すときは追加したフィルターを停止し、元の表示名へ戻ることを確認します。

階層を維持してカテゴリー末尾の表示名だけを変更したパンくず
2026年10月3日撮影/WordPress 7.1.2・SWELL 2.19.0/指定カテゴリーだけ末尾の表示名を変更し、ホームとカテゴリーの2項目を維持。
add_filter( 'swell_breadcrumb_list_data', function( $list_data ) {
    // 自分のカテゴリーのスラッグへ置き換える。
    if ( ! is_category( '特定のカテゴリースラッグ' ) || ! $list_data ) {
        return $list_data;
    }
    $term = get_queried_object();
    if ( ! $term instanceof WP_Term ) {
        return $list_data;
    }
    // 現在のカテゴリーの表記だけ変更し、階層とURLを維持する。
    $last = array_key_last( $list_data );
    $list_data[ $last ]['name'] = $term->name . 'の案内';
    return $list_data;
} );

swell_post_list_404_text

このフィルターフックは、SWELL テーマでのメインループ内の投稿リストにおいて、記事が見つからなかった場合に表示されるテキストを変更するために使用されます。

これを利用して、404メッセージの内容を動的に変更することができます。

add_filter( 'swell_post_list_404_text', function( $text ) {
    // カスタマイズした404メッセージ
    $custom_message = '申し訳ございません。お探しの記事は見つかりませんでした。';

    // フィルターを通してカスタマイズしたメッセージを返す
    return '<p>' . esc_html( $custom_message ) . '</p>';
});

swell_posts_404_text

このフィルターフックは、SWELL テーマでサブループの投稿リストを出力する際に、記事が見つからなかった場合に表示されるテキストをカスタマイズするために使用されます。

デフォルトのテキストは「記事が見つかりませんでした。」ですが、このフックを利用してテキストを変更することができます。

add_filter( 'swell_posts_404_text', function( $text ) {
    return '<p>ご指定の条件に一致する記事はありませんでした。</p>';
});

swell_related_post_404_text

このフィルターフックは、SWELL テーマで関連記事を表示する際に、関連する記事が見つからなかった場合に表示されるテキストをカスタマイズするために使用されます。

デフォルトのテキストは「関連する記事はまだ見つかりませんでした。」ですが、このフックを利用してテキストを変更することができます。

add_filter( 'swell_related_post_404_text', function( $text ) {
    return '<p>関連記事はありません。</p>';
});

swell_sns_cta_message

このフィルターフックは、SWELL テーマで記事の下部に表示される SNS の呼びかけメッセージ(CTA)をカスタマイズするために使用されます。

デフォルトでは、”この記事が気に入ったらいいね または フォローしてね!” のようなメッセージが表示されますが、このフックを利用してメッセージの内容を変更することができます。

add_filter( 'swell_sns_cta_message', function( $cta_message ) {
    // カスタマイズしたメッセージを返す
    return '<br><i class="icon-thumb_up"></i> 記事を楽しんでいただけたら、シェアしてください!';
});

swell_parts_catchphrase

このフックは、旧SWELL_PARTS::catchphrase()を直接呼ぶテンプレートの返り値を変更します。

SWELL 2.19.0標準ヘッダーはSWELL_Theme::site_data()からキャッチフレーズを取得し、このフックを通りません。

掲載PHPを標準ヘッダーへ追加しても、Welcome to Our Site!は表示されません。

検証環境では実ヘッダーの出力が変わらず、旧メソッドの直接呼び出しでだけ文字が追加されました。

標準ヘッダーの文言を変える目的なら、管理画面のキャッチフレーズ設定を変更します。

独自テンプレートで旧メソッドを使っている場合だけ、次の例を参考にしてください。

add_filter( 'swell_parts_catchphrase', function( $catchphrase ) {
    // 追加したいテキスト
    $additional_text = ' - Welcome to Our Site!';

    // キャッチフレーズにテキストを追加
    $catchphrase .= $additional_text;

    return $catchphrase;
} );

旧タイトルフックと現在の呼び出し経路

フックSWELL 2.19.0で確認した経路
swell_parts_page_title旧SWELL_PARTS::page_title()に残る。現行の固定ページ見出しからは呼ばれない
swell_parts_term_title旧SWELL_PARTS::term_title()に残る。現行のターム見出しからは呼ばれない

以下の二つは旧メソッド向けの参考例です。

現行の固定ページ見出しとターム見出しを実PHPで出力しても、Custom Textの追加処理は呼ばれませんでした。

登録できることと、表示経路で実行されることは別です。

SWELL 2.19.0の標準テンプレートへ貼り付けてタイトルを変更する手順には使わないでください。

タイトルの表示位置を変える場合は個別記事のタイトル位置を変更する方法を参照してください。

これはタイトル文字列そのものの変更方法ではありません。

今回の確認はロゴ加工1例と旧タイトルフック2例に限定し、一覧の全81例を動作確認した結果ではありません。

swell_parts_page_title

このフィルターフックは、SWELL テーマで表示されるページタイトルを操作するために使用されます。

デフォルトでは、ページや投稿のタイトルが表示されますが、このフックを利用してタイトルの内容を動的に変更したり、追加のマークアップを追加したりすることができます。

add_filter( 'swell_parts_page_title', function( $title_html, $page_id ) {
    // 追加したいテキスト
    $additional_text = ' - Custom Text';

    // タイトルにテキストを追加
    $title_html .= $additional_text;

    return $title_html;
}, 10, 2 );

swell_parts_term_title

このフィルターフックは、SWELL テーマで表示されるターム(カテゴリーやタグなど)のタイトルを操作するために使用されます。

デフォルトでは、タームの名前が表示されますが、このフックを利用してタイトルの内容を動的に変更したり、追加のマークアップを追加したりすることができます。

add_filter( 'swell_parts_term_title', function( $title_html, $term_id ) {
    // 追加したいテキスト
    $additional_text = ' - Custom Text';

    // タイトルにテキストを追加
    $title_html .= $additional_text;

    return $title_html;
}, 10, 2 );

デザイン・表示設定関連

swell_body_attrs

このフィルターフックは、SWELL テーマで <body> タグに追加する HTML 属性をカスタマイズするために使用されます。

デフォルトでは、この部分には PJAX 対応を示す data-barba="wrapper" 属性が含まれる場合がありますが、フィルターフックを利用して他の属性を追加したり、既存の属性を変更したりすることができます。

add_filter( 'swell_body_attrs', function( $attrs ) {
    return $attrs . ' data-custom-attr="value"'; // カスタム属性を追加
} );

swell_content_attrs

このフィルターフックは、SWELL テーマでメインコンテンツエリア (#content) に追加する HTML 属性をカスタマイズするために使用されます。

デフォルトでは、この部分には現在の投稿の ID を示す data-postid 属性が含まれますが、フィルターフックを利用して他の属性を追加したり、既存の属性を変更したりすることができます。

add_filter( 'swell_content_attrs', function( $attrs ) {
    return $attrs . ' data-custom-attr="value"'; // カスタム属性を追加
} );

swell_frame_class

このフィルターフックは、SWELL テーマでフレームのクラスを取得する際に使用されます。

デフォルトでは、コンテンツのフレーム設定や表示範囲などに基づいてクラス名が決定されますが、このフックを利用してクラス名をカスタマイズすることができます。

add_filter( 'swell_frame_class', function( $frame_class ) {
    // 追加したいクラス名を設定
    $additional_class = 'my-custom-frame-class';

    // クラス名を追加
    $frame_class .= ' ' . $additional_class;

    return $frame_class;
} );

swell_head_logo

このフィルターフックは、SWELL テーマ内で定義されている swl_parts__head_logo 関数内で使用されます。

この関数は、ヘッダーに表示されるロゴのURLを指定するために使用されます。

swell_head_logo フィルターフックを使用することで、ヘッダーロゴのURLをカスタマイズすることができます。

add_filter( 'swell_head_logo', function( $logo_url ) {
    // カスタムロゴURLを指定する
    return 'https://example.com/path/to/custom-logo.png';
} );

swell_head_logo_sizes

このフィルターフックは、SWELL テーマ内で定義されている swl_parts__head_logo 関数内で使用されます。

この関数は、ヘッダーに表示されるロゴの画像サイズを指定するために使用されます。

swell_head_logo_sizes フィルターフックを使用することで、ヘッダーロゴの画像サイズをカスタマイズすることができます。

add_filter( 'swell_head_logo_sizes', function( $sizes ) {
    // カスタム画像サイズを指定する
    return '(max-width: 600px) 50vw, 300px';
} );

swell_head_logo_top

このフィルターフックは、SWELL テーマ内で定義されている swl_parts__head_logo 関数内で使用されます。

この関数は、トップページのヒーローヘッダーを利用する場合に、ヘッダーの上部に表示されるロゴのURLを指定するために使用されます。

swell_head_logo_top フィルターフックを使用することで、トップページのヘッダーロゴのURLをカスタマイズすることができます。

add_filter( 'swell_head_logo_top', function( $logo_top_url ) {
    // カスタムロゴURLを指定する
    return 'https://example.com/path/to/custom-logo-top.png';
} );

swell_get_sns_cta_data

このフィルターフックは、SWELL テーマ内で定義されている SWELL_Theme\Utility\Get::get_sns_cta_data メソッド内で使用されます。

このメソッドは、SNSのCTA(コール・トゥ・アクション)に関するデータを取得するために使用されます。swell_get_sns_cta_data フィルターフックを使用することで、SNSのCTAに関するデータをカスタマイズすることができます。

add_filter( 'swell_get_sns_cta_data', function( $data ) {
    // Twitterのフォローボタンを非表示にする
    $data['tw_id'] = '';

    // FacebookのいいねボックスのURLを変更する
    $data['fb_url'] = 'https://www.facebook.com/yourpage';

    // InstagramのフォローボタンのIDを変更する
    $data['insta_id'] = 'yourinstagramid';

    return $data;
});

swell_is_show_comments

このフィルターフックは、SWELL テーマで投稿ページにコメントセクションを表示するかどうかを判定するために使用されます。

コメントが許可されているか、コメントが存在する場合にコメントセクションが表示されます。

また、投稿のメタデータやテーマの設定によって表示を制御することもできます。

add_filter( 'swell_is_show_comments', '__return_false' );

swell_is_show_index

このフィルターフックは、SWELL テーマで投稿ページや固定ページに目次を表示するかどうかを判定するために使用されます。

目次は、ページ内の見出しを自動的に収集してリスト形式で表示する機能です。

このフィルターフックを使用することで、特定の条件下で目次の表示を制御することができます。

add_filter( 'swell_is_show_index', function( $is_show ) {
    if ( is_single() && has_category( '特定のカテゴリー', get_the_ID() ) ) {
        return true; // 特定のカテゴリーの投稿ページで目次を表示
    }
    return $is_show; // それ以外のページはデフォルトの設定に従う
} );

swell_is_show_page_links

このフィルターフックは、SWELL テーマで投稿ページの前の記事・次の記事リンクを表示するかどうかを判定するために使用されます。

この機能を有効にすると、投稿ページの下部に前の記事と次の記事へのリンクが表示されます。

add_filter( 'swell_is_show_page_links', '__return_true' );

swell_is_show_pickup_banner

このフィルターフックは、SWELL テーマでピックアップバナーを表示するかどうかを判定するために使用されます。

この機能を有効にすると、サイトのトップページや指定されたページの上部にピックアップバナーが表示されます。

add_filter( 'swell_is_show_pickup_banner', '__return_true' );

swell_is_show_sidebar

このフィルターフックは、SWELL テーマで各ページにサイドバーを表示するかどうかを判定するために使用されます。

トップページ、LP (ランディングページ)、通常のページ、投稿ページ、アーカイブページ、検索結果ページなど、異なる種類のページに対してサイドバーの表示設定を判定します。

add_filter( 'swell_is_show_sidebar', function( $is_show ) {
    if ( is_archive() ) {
        return true; // アーカイブページでサイドバーを表示
    }
    return $is_show; // それ以外のページはデフォルトの設定に従う
} );

swell_is_show_toc_ad

このフィルターフックは、SWELL テーマで投稿ページや固定ページに目次広告を表示するかどうかを判定するために使用されます。

目次広告は、サイト運営者が設定した広告を目次の上または下に表示する機能です。このフィルターフックを使用することで、特定の条件下で目次広告の表示を制御することができます。

add_filter( 'swell_is_show_toc_ad', function( $is_show ) {
    if ( is_single() ) {
        return true; // 投稿ページで目次広告を表示
    }
    return $is_show; // それ以外のページはデフォルトの設定に従う
} );

swell_is_show_ttltop

このフィルターフックは、SWELL テーマでページタイトルをコンテンツの上部に表示するかどうかを判定するために使用されます。

このフィルターフックを使用することで、特定の条件下でページタイトルの表示位置を制御することができます。

add_filter( 'swell_is_show_ttltop', function( $is_show ) {
    if ( is_single() && has_category( '特定のカテゴリー', get_the_ID() ) ) {
        return true; // 特定のカテゴリーの投稿ページでページタイトルを上部に表示
    }
    return $is_show; // それ以外のページはデフォルトの設定に従う
} );

swell_lp_content_attrs

このフィルターフックは、SWELL テーマでランディングページのコンテンツ部分 (#lp-content) に追加する HTML 属性をカスタマイズするために使用されます。

デフォルトでは、この部分には現在の投稿の ID を示す data-postid 属性が含まれますが、フィルターフックを利用して他の属性を追加したり、既存の属性を変更したりすることができます。

add_filter( 'swell_lp_content_attrs', function( $attrs ) {
    return $attrs . ' data-custom-attr="value"'; // カスタム属性を追加
} );

ロゴの外側だけにクラスを追加する

以下はWordPress 6.2以降のWP_HTML_Tag_Processorで、c-headLogoクラスを持つ外側の要素だけを変更する例です。

以前の文字列置換はc-headLogo__linkも分割し、ロゴのリンク用クラスを失っていました。

通常ヘッダーと追従ヘッダーの実PHP出力で、外側に追加クラスが1回付き、内側のc-headLogo__link・ホームへのリンク・rel属性が残ることを確認しました。

子テーマのfunctions.phpのPHP領域、またはCode SnippetsのPHPスニペットのどちらか1か所へ登録します。

既存の同じ例は置き換え、元に戻すときはこのフィルター登録を外します。

ロゴ画像の読み込み、PC・スマホの外観とキーボード操作は、使う環境で別途確認してください。

swell_parts_head_logo

このフィルターフックは、SWELL テーマで表示されるヘッダーロゴを操作するために使用されます。

デフォルトでは、テーマのカスタマイズ設定で設定されたロゴ画像またはサイトのタイトルが表示されますが、このフックを利用してロゴの内容を動的に変更したり、追加のマークアップを追加したりすることができます。

add_filter( 'swell_parts_head_logo', function( $logo_html, $is_fixbar ) {
    // WordPress 6.2以降。外側のロゴ要素だけにクラスを追加する。
    $processor = new WP_HTML_Tag_Processor( $logo_html );
    if ( $processor->next_tag( array( 'class_name' => 'c-headLogo' ) ) ) {
        $processor->add_class( 'custom-logo-class' );
    }
    return $processor->get_updated_html();
}, 10, 2 );

swell_parts_scroll_arrow

このフックは、旧SWELL_PARTS::get_scroll_arrow()を直接呼ぶテンプレート向けです。

SWELL 2.19.0標準のメインビジュアルでは呼ばれません。

標準テンプレートはswl_parts__scroll_arrow()から矢印を出力します。

旧例のcurrentColor置換は、旧メソッドを直接呼んでも色が変わりませんでした。

実際の色はbuttonのstyle属性に指定されているためです。

次の修正例はそのボタンだけを加工し、既存のスタイル、SVG、スクロール操作用の属性を残します。

WordPress 6.2以降が必要です。

旧メソッドを使う独自テンプレートでのみ使用し、標準SWELLの矢印へ反映するコードとしては追加しないでください。

旧例を入れている場合は停止してから、PHPスニペットまたは子テーマのfunctions.phpの1か所で置き換えます。

戻すときは該当フィルターを削除・無効化します。

add_filter( 'swell_parts_scroll_arrow', function( $arrow_html ) {
    // 旧 SWELL_PARTS::get_scroll_arrow() を直接使うテンプレート向け。
    if ( ! class_exists( 'WP_HTML_Tag_Processor' ) ) {
        return $arrow_html;
    }
    $html = new WP_HTML_Tag_Processor( $arrow_html );
    if ( $html->next_tag( [ 'tag_name' => 'BUTTON', 'class_name' => 'p-mainVisual__scroll' ] ) ) {
        $style = rtrim( (string) $html->get_attribute( 'style' ), "; \t\n\r" );
        $html->set_attribute( 'style', $style . ';color:#ff0000;' );
    }
    return $html->get_updated_html();
} );

swell_parts_toc_ad

SWELL 2.19.0では、このフィルターの呼び出しはコメントアウトされており、登録しても目次前の広告コードは変更されません。動作するカスタマイズ例として掲載していたコードは取り下げました。

swell_post_content_class

このフィルターフックは、投稿のコンテンツ部分のクラス属性を変更するために使用されます。

これを利用して、コンテンツのスタイルをカスタマイズするための追加のクラスを動的に追加できます。

add_filter( 'swell_post_content_class', function( $class ) {
    // 追加したいクラスを指定
    $additional_class = 'custom-content-class';
    
    // 既存のクラスに追加クラスを追加
    $class .= ' ' . $additional_class;
    
    return $class;
});

この例では、投稿のコンテンツ部分に custom-content-class というクラスが追加されます。

swell_root_attrs

このフィルターフックは、SWELL テーマで <html> タグに追加する HTML 属性をカスタマイズするために使用されます。

デフォルトでは、この部分にはページの状態を示すための属性が含まれていますが、フィルターフックを利用して他の属性を追加したり、既存の属性を変更したりすることができます。

add_filter( 'swell_root_attrs', function( $attrs ) {
    return $attrs . ' data-custom-attr="value"'; // カスタム属性を追加
} );

swell_table_scroll_hint

このフィルターフックは、SWELL テーマでテーブルブロックにスクロールヒントを追加する際に使用されます。

デフォルトでは、スクロールヒントは「スクロールできます <i class=”icon-more_arrow”></i>」というテキストとアイコンで構成されていますが、このフィルターフックを使用してカスタマイズすることができます。

add_filter( 'swell_table_scroll_hint', function( $hint_src ) {
    return '<div class="c-scrollHint"><span>' . esc_html__( '右にスクロール', 'swell' ) . ' <i class="icon-arrow_right"></i></span></div>';
} );

swell_get_svg

SWELL 2.19.0では、このフィルターの呼び出しはコメントアウトされており、登録してもSVGアイコンは差し替わりません。動作するカスタマイズ例として掲載していたコードは取り下げました。

swell_do_blog_parts

SWELL 2.19.0では、ブログパーツをブロック・ショートコードとして処理した後のHTML文字列を受け取ります。配列ではないため、キーを追加する書き方は使えません。

次の例は、空でないブログパーツ全体をdiv要素で囲みます。すべてのブログパーツに適用され、特定のパーツIDだけに限定する例ではありません。子テーマのfunctions.phpまたはPHPスニペットへ一度だけ追加してください。元へ戻すには追加したフィルターを削除・無効化し、キャッシュを削除します。CSSを追加しなければ、通常は見た目の変化はありません。

add_filter( 'swell_do_blog_parts', function( $content ) {
    if ( ! is_string( $content ) || $content === '' ) {
        return $content;
    }
    return '<div class="waza-blog-parts">' . $content . '</div>';
} );

swell_show_term_navigation

このフィルターフックは、SWELL テーマでカテゴリーの階層リストを表示するかどうかを制御するために使用されます。

デフォルトでは、テーマの設定に従ってカテゴリーの階層リストが表示されますが、このフックを利用して特定の条件下での表示を制御したり、カスタマイズしたりすることができます。

add_filter( 'swell_show_term_navigation', function( $show_term_navigation, $taxonomy, $term_id ) {
    // 特定のカテゴリーIDを指定
    $specific_category_id = 123;

    if ( 'category' === $taxonomy && $specific_category_id === $term_id ) {
        return true; // 階層リストを表示
    }

    return false; // それ以外の場合は階層リストを非表示
}, 10, 3 );

パフォーマンス・最適化関連

swell_blocks_rss_cache_time

このフィルターフックは、SWELL テーマでRSSブロックのキャッシュ時間をカスタマイズするために使用されます。

デフォルトでは、キャッシュ時間は1日( DAY_IN_SECONDS )と設定されていますが、このフィルターフックを使用してキャッシュ時間を変更することができます。

add_filter( 'swell_blocks_rss_cache_time', function( $cache_time, $rss_url ) {
    return HOUR_IN_SECONDS; // キャッシュ時間を1時間に設定
}, 10, 2 );

swell_delay_js_list

このフィルターフックは、SWELL テーマで JavaScript の遅延読み込みを設定する際に使用されます。

遅延読み込みを適用したい JavaScript ファイルやコードのキーワードをリストとして設定し、このフィルターフックを使用してカスタマイズすることができます。

add_filter( 'swell_delay_js_list', function( $delay_js_list ) {
    // 「example.js」というキーワードを追加
    $delay_js_list[] = 'example.js';
    // 「my-script」というキーワードを追加
    $delay_js_list[] = 'my-script';
    return $delay_js_list;
} );

swell_delay_js_prevent_pages

このフィルターフックは、SWELL テーマで JavaScript の遅延読み込みを設定する際に、遅延読み込みを適用しないページを指定するために使用されます。

遅延読み込みを適用したくないページのURLやキーワードをリストとして設定し、このフィルターフックを使用してカスタマイズすることができます。

add_filter( 'swell_delay_js_prevent_pages', function( $prevent_pages ) {
    // 「example-page」というURLの一部を持つページを追加
    $prevent_pages[] = 'example-page';
    // 「contact」というURLの一部を持つページを追加
    $prevent_pages[] = 'contact';
    return $prevent_pages;
} );

swell_hide_fse_blocks

このフィルターフックは、SWELL テーマで Full Site Editing (FSE) 関連のブロックをエディターから非表示にするかどうかを制御するために使用されます。

FSE は WordPress の新機能で、サイト全体の編集をブロックエディターで行うことができるようにするものです。

しかし、FSE を使用しない場合や、特定のブロックを非表示にしたい場合にこのフィルターフックを利用できます。

add_filter( 'swell_hide_fse_blocks', '__return_true' );

swell_infobar_data

このフィルターフックは、SWELL テーマでのインフォメーションバーに表示されるデータ(URL、テキスト、ボタンテキスト)を変更するために使用されます。

これを利用して、インフォメーションバーに表示される情報を動的に変更することができます。

add_filter( 'swell_infobar_data', function( $info_data ) {
    // インフォメーションバーのテキストをカスタマイズ
    $info_data['text'] = '新しいお知らせがあります!';

    // インフォメーションバーのURLをカスタマイズ
    $info_data['url'] = 'https://example.com/news';

    return $info_data;
});

swell_is_separate_css

このフィルターフックは、SWELL テーマで必要な CSS のみを読み込むかどうかを判定するために使用されます。

この機能を有効にすると、ページに必要なスタイルのみが読み込まれるため、ページのパフォーマンスが向上する可能性があります。

add_filter( 'swell_is_separate_css', '__return_false' );

swell_remove_url_to_card

このフィルターフックは、SWELL テーマでコンテンツ内の URL を自動的にブログカードに変換する機能を無効化するために使用されます。

フィルターフックを利用して、特定の条件下でこの機能を無効にすることができます。

add_filter( 'swell_remove_url_to_card', function( $remove_url_to_card ) {
    if ( is_single() && has_category( '特定のカテゴリー', get_the_ID() ) ) {
        return true; // 特定のカテゴリーの投稿ページでは URL をブログカードに変換しない
    }
    return $remove_url_to_card;
} );

swell_update_json_name

このフィルターフックは、SWELL テーマでアップデート情報を取得するための JSON ファイルの名前を変更するために使用されます。

デフォルトでは、この JSON ファイルの名前は update.json ですが、フィルターフックを利用して名前を変更することができます。

add_filter( 'swell_update_json_name', function( $json_name ) {
    return 'my_update.json'; // JSON ファイルの名前を変更
} );

ブログ・投稿関連

swell_get_archive_data

このフィルターフックは、SWELL テーマでアーカイブページのデータを取得する際に使用されます。

アーカイブページの種類(投稿タイプアーカイブ、カテゴリー、タグ、カスタムタクソノミー、著者、日付アーカイブなど)とタイトルを含むデータ配列を返します。このフックを利用して、アーカイブページのデータをカスタマイズすることができます。

add_filter( 'swell_get_archive_data', function( $data ) {
    // カスタムタクソノミーアーカイブの場合、タイトルを変更する
    if ( 'tax' === $data['type'] ) {
        $data['title'] = 'カスタムタクソノミー: ' . $data['title'];
    }
    return $data;
} );

swell_get_search_terms_status

SWELL 2.19.0では、このフィルターを含むメソッド全体がコメントアウトされています。登録しても検索条件の表示は変わらないため、実装用コードの掲載を取り下げました。

swell_get_search_title

このフィルターフックは、SWELL テーマ内で定義されている SWELL_Theme\Utility\Get::get_search_title メソッド内で使用されます。

このメソッドは、検索結果ページのタイトルを取得するために使用されます。

swell_get_search_title フィルターフックを使用することで、検索結果ページのタイトルをカスタマイズすることができます。

add_filter( 'swell_get_search_title', function( $s_title ) {
    // 検索結果ページのタイトルを変更する
    $s_title = 'カスタマイズされた検索結果: ' . $s_title;

    return $s_title;
});

swell_get_tax_of_post_type

このフィルターフックは、指定されたカスタム投稿タイプに紐付いたタクソノミーを取得するために使用されます。

カスタム投稿タイプに複数のタクソノミーが紐付いている場合、このフィルターフックを使用して特定のタクソノミーを取得することができます。

add_filter( 'swell_get_tax_of_post_type', function( $the_tax, $the_post_type ) {
    // カスタム投稿タイプ 'my_custom_post_type' に紐付いたタクソノミー 'my_custom_taxonomy' を取得
    if ( 'my_custom_post_type' === $the_post_type ) {
        return 'my_custom_taxonomy';
    }
    return $the_tax; // それ以外の投稿タイプはデフォルトのタクソノミーを返す
}, 10, 2 );

swell_get_the_term_links

このフックは、旧SWELL_FUNC::get_the_term_links()を直接呼ぶテンプレートのリンクHTMLを変更します。

SWELL 2.19.0標準の記事末尾は別のデータ取得経路を使い、このフックを通りません。

次の参考例がcustom-classを追加するのは、旧メソッドから生成したカテゴリーリンクだけです。

タグリンクには追加しません。

実記事末尾のカテゴリー・タグ表示はどちらも変わらないことを確認しました。

標準の記事末尾へクラスを追加する例としては使わないでください。

必要な旧テンプレートにだけPHPを追加し、戻すときは該当フィルターを停止します。

add_filter( 'swell_get_the_term_links', function( $thelist, $post_id, $tax ) {
    // 追加したいクラス名
    $additional_class = 'custom-class';

    // リンクにクラスを追加
    $thelist = str_replace( 'c-categoryList__link', 'c-categoryList__link ' . $additional_class, $thelist );

    return $thelist;
}, 10, 3 );

swell_get_the_terms_data

このフィルターフックは、SWELL テーマ内で定義されている get_the_terms_data 関数内で使用されます。

この関数は、指定された投稿のタクソノミー項目のデータを取得し、そのデータをフィルタリングするためにこのフックを提供します。

add_filter( 'swell_get_the_terms_data', function( $terms_data ) {
    foreach ( $terms_data as &$term_data ) {
        // 例えば、特定のカテゴリー名を変更したい場合
        if ( '旧カテゴリー名' === $term_data['name'] ) {
            $term_data['name'] = '新カテゴリー名';
        }
    }
    return $terms_data;
});

swell_pager_range

このフィルターフックは、SWELL テーマでのページネーションにおいて、現在のページの左右に表示するページ数の範囲を変更するために使用されます。

これを利用して、ページネーションの表示範囲を動的に変更することができます。

add_filter( 'swell_pager_range', function( $range ) {
    // 左右に表示するページ数の範囲を3に設定
    return 3;
});

swell_pickup_post_args

このフィルターフックは、SWELL テーマでの記事スライダーに表示される投稿リストのクエリ引数を変更するために使用されます。

これを利用して、記事スライダーに表示される投稿の条件を動的に変更することができます。

add_filter( 'swell_pickup_post_args', function( $query_args ) {
    // カスタム投稿タイプ「my_post_type」の投稿を表示
    $query_args['post_type'] = 'my_post_type';

    // タグID「123」を持つ投稿を除外
    $query_args['tag__not_in'] = [123];

    // 投稿日が過去7日以内の投稿のみ表示
    $query_args['date_query'] = [
        [
            'after' => '7 days ago',
        ],
    ];

    return $query_args;
});

swell_post_list_cat_data

このフィルターフックは、SWELL テーマで投稿リストに表示されるカテゴリー情報をカスタマイズするために使用されます。

デフォルトでは、投稿に割り当てられた最初のカテゴリーのIDと名前が使用されますが、このフックを利用して別のカテゴリー情報を表示することができます。

次の例は、投稿IDが123のカードだけ、表示カテゴリーをID456へ変更します。2つの数値を自分のサイトのIDへ置き換えてください。対象外の投稿や存在しないカテゴリーでは元の表示データを返します。変更するのはカード上の表示で、投稿に登録されたカテゴリー自体は変更しません。SWELL 2.19.0のソースで配列のid・nameと投稿IDの引数を確認しています。

add_filter( 'swell_post_list_cat_data', function( $cat_data, $post_id ) {
    // 自分の対象投稿IDと、表示するカテゴリーIDへ変更します。
    $target_post_id = 123;
    $display_category_id = 456;
    if ( (int) $post_id !== $target_post_id || ! is_array( $cat_data ) ) {
        return $cat_data;
    }
    $category = get_term( $display_category_id, 'category' );
    if ( ! $category || is_wp_error( $category ) ) {
        return $cat_data;
    }
    $cat_data['id'] = $category->term_id;
    $cat_data['name'] = $category->name;
    return $cat_data;
}, 10, 2 );

swell_post_list_type_on_archive

SWELL 2.19.0では、カテゴリー・タグなどのタームアーカイブは別の処理へ分岐します。このフックの中でカテゴリーやタグを判定しても、標準のターム一覧には適用されません。カテゴリー・タグには後述のswell_post_list_type_on_termを使います。

次の例は著者アーカイブだけをカード型にします。日付アーカイブなどでは元の形式を保ちます。子テーマのfunctions.phpまたはPHPスニペットへ一度だけ追加し、戻す場合は追加したフィルターを削除・無効化してキャッシュを削除してください。

add_filter( 'swell_post_list_type_on_archive', function( $list_type ) {
    // 著者アーカイブだけカード型にします。
    if ( is_author() ) {
        return 'card';
    }
    return $list_type;
} );

is_author()で著者アーカイブを判定します。著者ごとに限定する場合は、対象の著者IDなどを指定してください。

このフックは第2引数にアーカイブ情報も渡しますが、上の例では使わないため受け取りを省略しています。

swell_post_list_type_on_search

このフィルターフックは、SWELL テーマで検索結果ページに表示される投稿リストのスタイル(リストタイプ)をカスタマイズするために使用されます。

デフォルトのリストタイプはテーマの設定に依存しますが、このフックを利用して検索結果ページのリストタイプを個別に指定することができます。

add_filter( 'swell_post_list_type_on_search', function( $list_type ) {
    return 'card';
});

swell_post_list_type_on_term

カテゴリー・タグなどのタームアーカイブの一覧形式を変更します。次の例はtarget-categoryというスラッグのカテゴリーだけをカード型にします。スラッグを自分の設定へ置き換えてください。対象外や存在しないタームでは元の値を返します。

SWELL 2.19.0のカード型の値はcardです。旧例のgridは標準の一覧形式にありません。子テーマのfunctions.phpまたはPHPスニペットへ追加し、戻すときはフィルターを削除・無効化してキャッシュを削除します。カテゴリーの設定自体を書き換える処理ではありません。

add_filter( 'swell_post_list_type_on_term', function( $list_type, $term_id ) {
    $term = get_term( $term_id );
    if ( ! $term || is_wp_error( $term ) ) {
        return $list_type;
    }
    // 自分のカテゴリーのスラッグへ置き換えます。
    if ( $term->taxonomy === 'category' && $term->slug === 'target-category' ) {
        return 'card';
    }
    return $list_type;
}, 10, 2 );

get_term() 関数を利用してタームの情報を取得し、条件分岐に使用しています。

$term_id パラメータを利用することで、特定のタームに対してのみリストタイプを変更することができます。

swell_related_post_args

このフィルターフックは、SWELL テーマで関連記事を表示する際のクエリ引数をカスタマイズするために使用されます。

デフォルトでは、投稿タイプやカテゴリー、タグなどに基づいて関連記事が選択されますが、このフックを利用してクエリ引数を変更することで、表示する関連記事の条件を細かく調整することができます。

add_filter( 'swell_related_post_args', function( $args ) {
    // 導入先のフィールド名と値へ変更します。
    $condition = [
        'key'     => 'custom_field_key',
        'value'   => 'custom_value',
        'compare' => '=',
    ];
    // 既存の条件を一つのグループとして残し、追加条件とANDで結びます。
    $existing = $args['meta_query'] ?? [];
    $args['meta_query'] = is_array( $existing ) && $existing
        ? [ 'relation' => 'AND', $existing, $condition ]
        : [ $condition ];
    return $args;
});

関連記事の条件を上書きせずに追加する

上の例では、既存のmeta_queryを残して、追加するフィールド条件とANDで結びます。

既存の条件が「地域Aまたは地域B」のORグループでも、そのグループ全体を一つの条件として扱うため、「指定地域のいずれか、かつ指定フィールド値に一致する」という絞り込みになります。

custom_field_keyとcustom_valueは導入先のフィールド名と保存値へ変更してください。

既存のmeta_queryへ新しい配列を代入するだけでは、先に設定した地域や公開対象などの条件が失われます。

カテゴリ条件や除外IDなど、meta_query以外の引数は変更しません。

確認用の記事に地域A・地域B・対象外地域と、フィールド値が一致する記事・一致しない記事を用意します。

上の例を適用した後は、指定地域内でフィールド値も一致する記事だけが残ることを確認してください。

既存の条件を満たす記事がなければ0件になるのが正しい結果です。

この絞り込みは、SWELLが自動選出する関連記事に適用します。

投稿の個別設定で「優先的に表示する関連記事」のIDを指定した場合、その記事はこのクエリのフィルターを通らず、先に表示されます。

対象外の記事が残る場合は、優先表示IDに含まれていないかを確認し、その設定からIDを取り除いてください。

隔離したWordPress 7.1.2 / SWELL 2.19.0で、既存OR条件の保持、除外IDの保持、既存条件がない場合、既存条件に該当記事がない場合をPHPで検証しました。

自動選出の実テンプレートが条件一致の2記事だけを出し、優先表示IDの指定では対象外の記事が別枠で残ることも確認しています。

画面上の関連記事の配置とスマホでの操作確認は別途必要です。

画面上の関連記事の配置とスマホでの操作確認は別途必要です。

swell_related_post_maxnum

このフィルターは、SWELLの標準関連記事で通常取得する件数を調整します。初期値は8で、次の例では5に変更します。記事編集画面で指定した優先記事の件数を引いた分だけ追加取得します。

優先記事自体を5件へ切り詰める処理はありません。表示を5件以内に収めたい場合は、優先記事の指定も5件以内にしてください。候補が不足する場合は5件より少なくなることがあります。

add_filter( 'swell_related_post_maxnum', function( $maxnum ) {
    return 5;
});
優先記事の指定追加取得の上限候補が十分ある場合の合計
0件5件5件
2件3件5件
5件追加取得なし5件
6件追加取得なし6件
SWELL 2.19.0の実テンプレートで、異なる公開記事を使って確認。

SWELL 2.19.0では、優先記事2件・設定値5の状態で追加取得条件に合う記事が0件になると、優先分も表示されない動作を確認しました。swell_related_post_argsで絞り込みを追加する場合は、候補0件のケースも確認してください。この件数フィルターだけでは解消しません。必要な場合は、次の子テーマ側の修正で優先分を残せます。

追加候補が0件でも優先記事を残す

SWELL 2.19.0向けのテンプレート修正です。有効な子テーマをバックアップし、親テーマのparts/single/related_post_list.phpを子テーマの同じ相対パスへコピーします。すでに子テーマに同名ファイルがある場合は上書きせず、既存の変更と照合してください。

コピーしたファイル内の次の1行を探します。functions.phpやCode Snippetsへ追加するコードではありません。

elseif ( $q->have_posts() ) :

その1行を次へ置き換えます。前の「優先記事が空、かつ追加候補もない」分岐は残します。

else :

これにより、追加取得が0件でも、生成済みの優先記事リストを出力する分岐へ進みます。候補あり・なしと優先指定0/2/5/6件の計8条件を実WordPressの修正テンプレートで確認しました。優先指定6件を5件に減らす修正ではありません。

利用先ではキャッシュを削除し、候補あり・候補0件の両方で件数とリンクを確認します。親テーマ更新後は元ファイルとの差分を確認してください。戻すときは子テーマ側の変更前ファイルを復元します。今回初めてコピーした場合のみ、その追加ファイルを取り除けば親テーマ側へ戻ります。このサイト全体へ子テーマ修正を適用した実演ではありません。

swell_toc_target

このフィルターフックは、SWELL テーマで目次(TOC: Table of Contents)を生成する際に、どの要素を目次の対象とするかを指定するために使用されます。

デフォルトでは、h2,h3,h4 が対象となりますが、このフィルターフックを使用することで、対象とする要素をカスタマイズすることができます。

add_filter( 'swell_toc_target', function( $meta ) {
    return 'h3';
} );

swell_twitter_to_x

このフィルターフックは、SWELL テーマでのアイコンリストにおいて、Twitter アイコンを特定のアイコンに置き換えるために使用されます。

デフォルトでは、Twitter アイコンは通常のものが使用されますが、このフックを利用して、例えばTwitter X アイコンに変更することができます。

add_filter( 'swell_twitter_to_x', function( $value ) {
    // Twitter アイコンを Twitter X アイコンに置き換える
    return true;
});

カスタムフォーマット・エディター関連

swell_code_meta_screens

このフィルターフックは、SWELL テーマでカスタム CSS と JS のメタボックスを表示する投稿タイプを指定するために使用されます。

デフォルトでは、post と page に加えて、カスタム投稿タイプも含まれますが、このフィルターフックを使用して表示する投稿タイプを変更することができます。

add_filter( 'swell_code_meta_screens', function( $screens ) {
    return ['post', 'custom_post_type']; // 'post' と 'custom_post_type' にのみメタボックスを表示
} );

swell_custom_format_sets

このフィルターフックは、SWELL テーマでカスタム書式セットを定義する際に使用されます。

カスタム書式セットは、エディターでテキストに適用できる複数の書式を組み合わせたものです。

たとえば、テキストを太字にし、特定の背景色を付け、マーカーを適用するといった書式セットを定義することができます。

add_filter( 'swell_custom_format_sets', function( $custom_format_sets ) {
    $custom_format_sets[] = [
        [
            'type'       => 'loos/bg-color',
            'attributes' => [ 'class' => 'swl-bg-color has-custom-background-color' ],
        ],
        [
            'type'       => 'loos/marker',
            'attributes' => [ 'class' => 'mark_custom' ],
        ],
        [
            'type'       => 'loos/text-color',
            'attributes' => [ 'class' => 'has-custom-color' ],
        ],
        [
            'type'       => 'loos/font-size',
            'attributes' => [ 'class' => 'u-fz-custom' ],
        ],
        [
            'type'      => 'core/bold',
        ],
        [
            'type'      => 'core/italic',
        ],
    ];

    return $custom_format_sets;
} );

swell_custom_formats

このフィルターフックは、SWELL テーマでカスタム書式を定義する際に使用されます。

カスタム書式は、エディターでテキストに適用できるカスタムスタイルです。

たとえば、特定の色でテキストを強調する書式や、特定のフォントサイズでテキストを表示する書式などを定義することができます。

add_filter( 'swell_custom_formats', function( $custom_formats ) {
    $custom_formats[] = [
        'name'      => 'loos/custom-format-example',
        'title'     => 'カスタム書式例',
        'tagName'   => 'span',
        'className' => 'custom-format-example',
    ];

    return $custom_formats;
} );

swell_side_meta_screens

このフィルターフックは、SWELL テーマで「SWELL設定」メタボックスを表示する投稿タイプを指定するために使用されます。

デフォルトでは、post と page に加えて、カスタム投稿タイプも含まれますが、このフィルターフックを使用して表示する投稿タイプを変更することができます。

add_filter( 'swell_side_meta_screens', function( $screens ) {
    return ['post', 'custom_post_type']; // 'post' と 'custom_post_type' にのみメタボックスを表示
} );

swell_term_meta_screens

このフィルターフックは、SWELL テーマ内で定義されているタームメタデータの管理画面に関連する処理で使用されます。

swell_term_meta_screens フィルターフックを使用することで、タームメタデータを追加するタクソノミーの画面をカスタマイズすることができます。

add_filter( 'swell_term_meta_screens', function( $screens ) {
    $screens[] = 'custom_taxonomy';
    return $screens;
} );

おまけ│SWELLで使われているフックまとめ

こちらは本記事の趣旨とは逸れますが、興味があったので調べてみました。

SWELLで使われているフックを見る

アクションフック 全50個

まずはアクションフックから。

フック名ファイルの場所
admin_menuwp-content/themes/swell/classes/Admin_Menu.php
admin_initwp-content/themes/swell/classes/Admin_Menu.php
after_setup_themewp-content/themes/swell/classes/Theme_Data.php
initwp-content/themes/swell/classes/Theme_Data.php
wp_loadedwp-content/themes/swell/classes/Theme_Data.php
show_user_profilewp-content/themes/swell/classes/Meta_User.php
edit_user_profilewp-content/themes/swell/classes/Meta_User.php
profile_updatewp-content/themes/swell/classes/Meta_User.php
dynamic_sidebarwp-content/themes/swell/classes/Pre_Parse_Blocks.php
widgets_initwp-content/themes/swell/classes/Legacy_Widget.php
wp_headwp-content/themes/swell/lib/content_filter.php
tiny_mce_before_initwp-content/themes/swell/lib/tiny_mce.php
upgrader_process_completewp-content/themes/swell/lib/update/Puc/v4p5/UpgraderStatus.php
admin_footer-edit.phpwp-content/themes/swell/lib/hooks/admin_display.php
admin_noticeswp-content/themes/swell/lib/notice.php
wp_dashboard_setupwp-content/themes/swell/lib/notice.php
enqueue_block_editor_assetswp-content/themes/swell/lib/load/block_assets.php
admin_enqueue_scriptswp-content/themes/swell/lib/load/admin.php
wpwp-content/themes/swell/lib/load/jquery.php
rest_api_initwp-content/themes/swell/lib/rest_api.php
current_screenwp-content/themes/swell/lib/activate.php
after_setup_themewp-content/themes/swell/lib/theme_setup.php
initwp-content/themes/swell/lib/gutenberg/register_blocks.php
add_meta_boxeswp-content/themes/swell/lib/post_meta/meta_side.php
save_postwp-content/themes/swell/lib/post_meta/meta_lp.php
pre_get_postswp-content/themes/swell/lib/hooks.php
wp_headerswp-content/themes/swell/lib/hooks.php
wp_terms_checklist_argswp-content/themes/swell/lib/hooks.php
the_password_formwp-content/themes/swell/lib/hooks.php
hook_initwp-content/themes/swell/lib/post_type.php
hook_admin_initwp-content/themes/swell/lib/post_type.php
set_data__initwp-content/themes/swell/lib/define_const.php
hook_wp_loadedwp-content/themes/swell/lib/define_const.php
hook_wpwp-content/themes/swell/lib/define_const.php

フィルターフック 全84個

次にフィルターフック。

フック名ファイルの場所
render_blockwp-content/themes/swell/classes/Pre_Parse_Blocks.php
widget_textwp-content/themes/swell/classes/Pre_Parse_Blocks.php
widget_text_contentwp-content/themes/swell/classes/Pre_Parse_Blocks.php
widget_titlewp-content/themes/swell/classes/Legacy_Widget.php
the_contentwp-content/themes/swell/lib/content_filter.php
widget_block_contentwp-content/themes/swell/lib/content_filter.php
mce_external_pluginswp-content/themes/swell/lib/tiny_mce.php
mce_buttons_2wp-content/themes/swell/lib/tiny_mce.php
upgrader_pre_installwp-content/themes/swell/lib/update/Puc/v4p5/UpgraderStatus.php
upgrader_package_optionswp-content/themes/swell/lib/update/Puc/v4p5/UpgraderStatus.php
upgrader_post_installwp-content/themes/swell/lib/update/Puc/v4p5/UpgraderStatus.php
cron_scheduleswp-content/themes/swell/lib/update/Puc/v4p5/Scheduler.php
plugins_apiwp-content/themes/swell/lib/update/Puc/v4p5/Plugin/UpdateChecker.php
plugin_row_metawp-content/themes/swell/lib/update/Puc/v4p5/Plugin/Ui.php
debug_bar_panelswp-content/themes/swell/lib/update/Puc/v4p5/DebugBar/Extension.php
upgrader_pre_downloadwp-content/themes/swell/lib/update/Puc/v4p5/Vcs/GitHubApi.php
http_request_argswp-content/themes/swell/lib/update/Puc/v4p5/Vcs/GitHubApi.php
site_transient_update_pluginswp-content/themes/swell/lib/update/Puc/v4p5/UpdateChecker.php
upgrader_source_selectionwp-content/themes/swell/lib/update/Puc/v4p5/UpdateChecker.php
http_request_host_is_externalwp-content/themes/swell/lib/update/Puc/v4p5/UpdateChecker.php
render_block_loos/faqwp-content/themes/swell/lib/gutenberg/render_hook/faq.php
render_block_core/tablewp-content/themes/swell/lib/gutenberg/render_hook/core_table.php
render_block_loos/box-menu-itemwp-content/themes/swell/lib/gutenberg/render_hook.php
render_block_loos/columnswp-content/themes/swell/lib/gutenberg/render_hook.php
render_block_loos/box-menuwp-content/themes/swell/lib/gutenberg/render_hook.php
render_block_loos/tabwp-content/themes/swell/lib/gutenberg/render_hook.php
render_block_loos/accordion-itemwp-content/themes/swell/lib/gutenberg/render_hook.php
render_block_core/imagewp-content/themes/swell/lib/gutenberg/render_hook.php
separate_core_block_assetswp-content/themes/swell/lib/gutenberg/block_control.php
widget_types_to_hide_from_legacy_widget_blockwp-content/themes/swell/lib/gutenberg/block_control.php
manage_posts_columnswp-content/themes/swell/lib/hooks/admin_display.php
manage_pages_columnswp-content/themes/swell/lib/hooks/admin_display.php
manage_edit-category_columnswp-content/themes/swell/lib/hooks/admin_display.php
manage_edit-post_tag_columnswp-content/themes/swell/lib/hooks/admin_display.php
manage_category_custom_columnwp-content/themes/swell/lib/hooks/admin_display.php
manage_post_tag_custom_columnwp-content/themes/swell/lib/hooks/admin_display.php
manage_edit-category_sortable_columnswp-content/themes/swell/lib/hooks/admin_display.php
manage_edit-post_tag_sortable_columnswp-content/themes/swell/lib/hooks/admin_display.php
manage_edit-post_sortable_columnswp-content/themes/swell/lib/hooks/admin_display.php
requestwp-content/themes/swell/lib/hooks/admin_display.php
restrict_manage_postswp-content/themes/swell/lib/hooks/admin_display.php
query_varswp-content/themes/swell/lib/hooks/admin_display.php
posts_wherewp-content/themes/swell/lib/hooks/admin_display.php
plugin_auto_update_setting_htmlwp-content/themes/swell/lib/hooks/admin_display.php
theme_auto_update_setting_htmlwp-content/themes/swell/lib/hooks/admin_display.php
admin_bar_menuwp-content/themes/swell/lib/hooks/admin_toolbar.php
embed_oembed_discoverwp-content/themes/swell/lib/hooks/remove.php
wp_sitemaps_enabledwp-content/themes/swell/lib/hooks/remove.php
wp_sitemaps_users_pre_url_listwp-content/themes/swell/lib/hooks/remove.php
wp_calculate_image_srcset_metawp-content/themes/swell/lib/hooks/remove.php
emoji_svg_urlwp-content/themes/swell/lib/hooks/remove.php
run_wptexturizewp-content/themes/swell/lib/hooks/remove.php
media_library_infinite_scrollingwp-content/themes/swell/lib/hooks/remove.php
script_loader_tagwp-content/themes/swell/lib/hooks/remove.php
style_loader_tagwp-content/themes/swell/lib/hooks/remove.php
wp_lazy_loading_enabledwp-content/themes/swell/lib/hooks/remove.php
widget_update_callbackwp-content/themes/swell/lib/hooks/cache_clear.php
wp_generate_tag_cloudwp-content/themes/swell/lib/hooks/edit_core_html.php
wp_list_categorieswp-content/themes/swell/lib/hooks/edit_core_html.php
wp_list_pageswp-content/themes/swell/lib/hooks/edit_core_html.php
get_archives_linkwp-content/themes/swell/lib/hooks/edit_core_html.php
dynamic_sidebar_paramswp-content/themes/swell/lib/hooks/edit_core_html.php
render_block_core/categorieswp-content/themes/swell/lib/hooks/edit_core_html.php
render_block_core/archiveswp-content/themes/swell/lib/hooks/edit_core_html.php
puc_request_update_options_theme-swellwp-content/themes/swell/lib/update.php
do_shortcode_tagwp-content/themes/swell/lib/load/check_code.php
render_block_core/listwp-content/themes/swell/lib/load/check_code.php
render_block_core/gallerywp-content/themes/swell/lib/load/check_code.php
should_load_separate_core_block_assetswp-content/themes/swell/lib/load/separate.php
nav_menu_item_idwp-content/themes/swell/lib/custom_menu.php
nav_menu_css_classwp-content/themes/swell/lib/custom_menu.php
walker_nav_menu_start_elwp-content/themes/swell/lib/custom_menu.php
render_block_core/groupwp-content/themes/swell/lib/gutenberg.php
wp_theme_json_data_defaultwp-content/themes/swell/lib/gutenberg.php
wp_omit_loading_attr_thresholdwp-content/themes/swell/lib/gutenberg.php
pre_term_descriptionwp-content/themes/swell/lib/hooks.php
body_classwp-content/themes/swell/lib/hooks.php
the_excerpt_rsswp-content/themes/swell/lib/hooks.php
the_content_feedwp-content/themes/swell/lib/hooks.php
pre_get_avatarwp-content/themes/swell/lib/hooks.php
swell_is_show_sidebarwp-content/themes/swell/lib/overwrite.php
swell_is_show_indexwp-content/themes/swell/lib/overwrite.php
swell_toc_targetwp-content/themes/swell/lib/overwrite.php
swell_is_show_toc_adwp-content/themes/swell/lib/overwrite.php
swell_is_show_ttltopwp-content/themes/swell/lib/overwrite.php
swell_is_show_pickup_bannerwp-content/themes/swell/lib/overwrite.php
swell_show_term_navigationwp-content/themes/swell/lib/overwrite.php

優先関連記事を残す修正の表示確認

関連記事を優先指定した投稿で、追加取得の条件に合う候補が0件になる状態も確認してください。

SWELL 2.19.0の親テンプレートでは、優先2件と追加候補0件の組み合わせで関連記事リストが出ない状態を実HTTPで再現しました。

上記の1行を変更した子テーマのparts/single/related_post_list.phpでは、同じ条件でも優先2件のタイトルとリンクが表示されました。

スマートフォン375px相当の実画面と、関連記事リンクをEnterで開く操作を確認しています。

導入先では候補がある状態と0件の状態を比較し、優先指定した記事の公開状態とリンク先を確認します。

この確認は関連記事の分岐修正に限り、一覧にあるすべてのフックを実画面で検証したものではありません。

2026年10月2日、追加候補0件でも優先関連記事2件を残したSWELL子テーマのスマートフォン画面
追加候補0件でも優先関連記事2件を表示した子テーマ(2026年10月2日、隔離環境)。

SWELLのフックまとめ

本記事ではSWELLのフックまとめについてまとめました。

開発者が細かくフックを仕込んでいるおかけで、部分的なカスタマイズを上書きして変更することができて非常に便利です。

もしカスタマイズが浮かびましたら、この記事を参考にフックを使って調整してみてください。

WordPress本体のアクションフックは、こちらにまとめています。

  • URLをコピーしました!

実装を任せたい方へ

SWELLのカスタマイズ代行

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

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

サービス

Service

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

目次