楽天セール開催中!ポイント最大11倍! セール会場へ

SWELL│メインビジュアル下にコンテンツを表示する方法

SWELLのメインビジュアル画像の後に、関連リンクのメニューを追加する方法です。この記事の例は画像1枚の構成を対象にします。カスタマイザーの「メインビジュアルの高さ設定」は「画像・動画サイズのまま」にしてください。

目次

著者

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

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

追加メニューの動く見本

次の見本は、SWELL 2.19.0の実テンプレートと掲載PHPで生成したHTMLです。画像1枚・高さを画像に合わせる構成に、3項目のメニューを追加しています。記事内で見比べられるよう枠内へ配置し、リンクはWAZAの記事へ移動します。

Tabキーでリンクを順番に選び、Enterキーで開けます。画面が狭い場合は項目が折り返されます。

メニューは画像の後、メインビジュアルのコンテナ内に出力されます。動画・スライダー・画面いっぱいの高さでは表示条件が異なるため、この見本の検証範囲には含めません。

画像1枚のメインビジュアルの後に3項目のメニューを表示したスマートフォン幅の実画面。
2026年10月1日撮影。画面幅390pxで掲載見本を確認。

トップページだけメニューを増やしたい時に使いました。

SWELLでメインビジュアル下にコンテンツを表示する方法

swell_inner_main_visualフックに出力を追加します。メニューの作成、PHPの追加、CSSの追加の順に進めます。

メニューの作成

「外観」→「メニュー」で、表示したいリンクだけを登録したメニューを作成します。

掲載例のメニューIDは94です。自分のサイトで作成したメニューIDに置き換えてください。

IDが94のメニューを作成した管理画面の様子。
2024年12月撮影の掲載例。メニューIDはこの例では94ですが、作成したメニューのIDを使ってください。
外観のメニュー管理画面
2026年10月11日、Windows Chromeの管理画面を参照。撮影環境の選択肢はメニューID3と34で、掲載コードのメニューID94の作成例を実証した画像ではありません。

functions.phpの挿入

PHPは子テーマのfunctions.php、またはPHPスニペット管理プラグインのどちらか一方へ追加します。

add_action('swell_inner_main_visual', function () {
    $menu_id = 94; // 自分のメニューIDへ変更
    $menu = wp_get_nav_menu_object($menu_id);
    if (!$menu || is_wp_error($menu)) {
        return;
    }
    $items = wp_nav_menu([
        'menu' => $menu_id,
        'container' => false,
        'menu_class' => 'waza-mv-menu__list',
        'fallback_cb' => false,
        'echo' => false,
        'depth' => 1,
    ]);
    if (!$items) {
        return;
    }
    echo '<nav class="waza-mv-menu" aria-label="トップページの関連リンク">' . $items . '</nav>';
});

CSSの挿入

以下のCSSは、追加したメニュー専用のクラスだけに適用します。

PC・スマホとも横並びを基本とし、幅が足りないときは折り返します。

.waza-mv-menu {
    position: relative;
    z-index: 2;
    width: 100%;
    padding: 12px;
    background: #fff;
    color: #222;
}
.waza-mv-menu .waza-mv-menu__list {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px 16px;
    margin: 0;
    padding: 0;
    list-style: none;
}
.waza-mv-menu .waza-mv-menu__list > li {
    margin: 0;
    max-width: 100%;
}
.waza-mv-menu .waza-mv-menu__list > li > a {
    display: block;
    padding: 12px;
    color: inherit;
    overflow-wrap: anywhere;
}
.waza-mv-menu a:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 2px;
}

確認

冒頭の見本で、メインビジュアルの画像に続くメニューの配置を確認できます。

確認した環境と戻し方

swell_inner_main_visualはメインビジュアル内部のフックです。メインビジュアルが表示されないページには、この例のメニューも出力されません。この例ではメニューの第1階層だけを表示し、存在しないメニューIDや空のメニューでは何も出力しません。

冒頭の見本と画像は、掲載コードで生成した表示を2026年10月1日に撮影したものです。画像1枚・高さを画像に合わせる構成だけを確認しており、動画・スライダー・画面いっぱいの高さは検証範囲に含めません。

CSSは追加CSSへ保存します。既存のヘッダー用クラスは変更しません。元に戻すときは、今回追加したPHPとCSSだけを削除します。

関連する実装はSWELLカスタマイズのまとめから探せます。

よくある質問:SWELLでメインビジュアル下にコンテンツを表示する方法

メインビジュアルの下に、メニューを追加できますか?

記事では、SWELLのメインビジュアル画像の後に、関連リンクのメニューを追加する方法です。トップページだけメニューを増やしたいときに使いました。swell_inner_main_visualフックに出力を追加し、メニューの作成、PHPの追加、CSSの追加の順に進めます。

どんな構成が対象ですか?

記事では、この例は画像1枚の構成が対象で、カスタマイザーの「メインビジュアルの高さ設定」は「画像・動画サイズのまま」にしてください。動画・スライダー・画面いっぱいの高さでは表示条件が異なるため、検証範囲には含まれません。

メニューは、どう作りますか?

「外観」→「メニュー」で、表示したいリンクだけを登録したメニューを作成します。記事では、掲載例のメニューIDは94なので、自分のサイトで作成したメニューIDに置き換えてください。

メニューは、どこに表示されますか?

記事では、メニューは画像の後、メインビジュアルのコンテナ内に出力されます。メインビジュアルが表示されないページには、この例のメニューも出力されません。

どんなメニューが表示されますか?

記事では、この例ではメニューの第1階層だけを表示し、存在しないメニューIDや空のメニューでは何も出力しません。見本では3項目のメニューを追加し、画面が狭い場合は項目が折り返されます。Tabキーでリンクを順番に選び、Enterキーで開けます。

CSSは、どこに保存しますか? 元に戻すには?

記事では、CSSは追加CSSへ保存し、既存のヘッダー用クラスは変更しません。元に戻すときは、今回追加したPHPとCSSだけを削除します。

確認の範囲を教えてください。

記事では、冒頭の見本と画像は、SWELL 2.19.0の実テンプレートと掲載PHPで生成した表示を2026年10月1日に撮影したもの(画面幅390pxで確認)です。画像1枚・高さを画像に合わせる構成だけを確認しており、メニューIDの管理画面の画像は撮影環境の選択肢がメニューID3と34で、掲載コードのメニューID94の作成例を実証した画像ではありません。最新は公式で確認してください。

  • URLをコピーしました!

実装を任せたい方へ

SWELLのカスタマイズ代行

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

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

サービス

Service

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

目次