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

SWELL│固定記事のタイトル上のフックを作成する方法

SWELLには様々なフックがありますが、固定記事のタイトル上のフックはありません。

そこでSWELLの関数を上書きしてオリジナルのフックswell_before_page_titleを作り、固定ページのタイトル上へ容易にコンテンツを追加できるようにしてみました。

if ( is_page() && empty( $args['nowrap'] ) ) {
            do_action( 'swell_before_page_title' ); // 固定ページの通常タイトル出力だけで実行
        }

親テーマのファイルは編集せず、子テーマのfunctions.phpで関数を上書きする方法です。

子テーマで関数を上書きして上書きできるフックを追加したコードの記述箇所。

その備忘録です。

ちなみに固定記事ページ上部のウィジェットがあるので、このカスタマイズ自体は重要なものではないです。

固定記事ページ上部に用意されているウィジェットの配置場所。

大事なのはSWELLのコードの上書きで公式で用意されてない場所にフックを新規設置できるということです。

いろいろSWELLのカスタマイズの幅が広がるので便利です。

目次

著者

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

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

固定ページだけに表示できているか確認する

通常の固定ページを開き、追加内容がタイトルの直前へ表示されることを確認します。

同じ内容が投稿記事のタイトル前へ出ていないことも確認します。

2026年10月2日、WordPress 7.1.2とSWELL 2.19.0の実HTTP表示で、固定ページの通常タイトルとhas_inner指定のタイトルへ挿入できることを確認しました。

nowrap指定の文字列出力と、投稿記事内の通常・has_inner・nowrap指定では追加内容を出しません。

スマートフォン375px相当でもタイトル直前の位置を確認しています。

この上書きはSWELLの関数実装に依存するため、親テーマの更新後は元の関数との差分を確認します。

SWELLで固定記事のタイトル上のフックを作成する方法

やり方は簡単です。

子テーマのfunctions.phpにコードを追加するだけです。

まずは子テーマを有効化した状態で、外観 > テーマファイルエディターから子テーマのfunctions.phpを開き、末尾に下記のコードを追加してください。

親テーマ(SWELL)のfunctions.phpはテーマ更新で上書きされるため、直接編集しないでください。

編集前に子テーマのfunctions.phpをコピーして保存し、FTPやサーバーのファイルマネージャーから元に戻せる状態にしておきましょう。

※この記事のコードは子テーマのfunctions.phpの1か所だけに追加し、Code Snippetsなどへ重ねて登録しないでください。

※アーカイブページのサブタイトルを消す記事でも同じswl_parts__page_titleを上書きしているため、併用する場合は1つの関数にまとめてください。

if ( ! function_exists( 'swl_parts__page_title' ) ) :
    function swl_parts__page_title( $args ) {

        if ( is_page() && empty( $args['nowrap'] ) ) {
            do_action( 'swell_before_page_title' ); // 固定ページの通常タイトル出力だけで実行
        }
        
        $title     = $args['title'] ?? '';
        $subtitle  = $args['subtitle'] ?? '';
        $has_inner = $args['has_inner'] ?? false;
        $nowrap    = $args['nowrap'] ?? false; // 後方互換用

        if ( $subtitle ) {
            $title .= '<small class="c-pageTitle__subTitle u-fz-14">– ' . $subtitle . ' –</small>';
        }
        if ( $nowrap ) {
            echo wp_kses( $title, \SWELL_Theme::$allowed_text_html );
            return;
        }

        $title = wp_kses( $title, \SWELL_Theme::$allowed_text_html );
        $title_style = '';
        if ( $has_inner ) {
            $title       = '<span class="c-pageTitle__inner">' . $title . '</span>';
            $title_style = is_archive() ? \SWELL_Theme::get_setting( 'archive_title_style' ) : \SWELL_Theme::get_setting( 'page_title_style' );
        }

        if ( $title_style ) {
            echo '<h1 class="c-pageTitle" data-style="' . esc_attr( $title_style ) . '">' . $title . '</h1>';
        } else {
            echo '<h1 class="c-pageTitle">' . $title . '</h1>';
        }
    }
endif;


// フックに挿入したい内容(固定ページのみ)
function motoki_before_page_title_content() {
    if ( ! is_page() ) {
        return;
    }
    echo '<p style="text-align: center; color: red;">固定ページのタイトル上に表示したい内容</p>';
}
add_action( 'swell_before_page_title', 'motoki_before_page_title_content', 10, 0 );

実際には下記のように表示されます。

作成したフックを使って追加した内容がタイトル上に表示されている様子。

以上です。

この記事で紹介しているコードは、GitHubのMOTOKI-LLC/WAZA-codeにもまとめています。

nowrapが指定されたタイトル文字列だけの出力では、このフックを実行しません。通常の固定ページタイトルを出力する場合に、その直前へ内容を挿入します。

元に戻すときは、今回追加したswl_parts__page_titleの定義とadd_actionを含むコードを削除します。

  • URLをコピーしました!

実装を任せたい方へ

SWELLのカスタマイズ代行

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

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

サービス

Service

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

目次