MENU

SWELLグローバルナビのカスタマイズ!LPページで別メニューを表示させる方法

WordPress最強テーマ「SWELL」で、特定のLP・固定ページではサイト全体で使用する共通のグローバルナビとは異なる別のヘッダーメニューを表示させるカスタマイズ方法を紹介します。

目次

今回作るヘッダーメニューの特徴

この記事で紹介するヘッダーメニュー

今回のカスタマイズでは以下の特徴を持つヘッダーメニューを作成します。

  • トップページのヘッダーメニュー同様にファーストビューに被せる
  • メニューの最後の項目(右端)はボタンの見た目にする

ヘッダーメニューのカスタマイズ方法

【1】LPページを作成する

適当にLPページを作成します。

ファーストビューに被さる形のヘッダーメニューを想定しているので、「フルワイド」ブロックを使用してファーストビューを設置してください。

また、「ヘッダー・フッター設定」>「SWELLのヘッダーを使用する」にチェックを入れ忘れないようにしましょう。

【2】LP用のメニューを新規作成する

「外観」>「メニュー」でLP用のメニューを新規作成します。

今回ご紹介するカスタマイズではメニューの最後の項目がボタンの見た目になるので、「お問い合わせ」などにすると良いでしょう。

【3】子テーマのfunctions.phpを編集する

子テーマのfunctions.phpに下記のコードを追記。

function my_custom_nav_menu($args) {
    if(is_single('ここにLPページの記事IDを入れる')) {
      if ($args['theme_location'] === 'header_menu') {
        $args['menu'] = 'ここに外観>メニューで作成したメニューのメニュー名を入れる';
      }
    } 
    return $args;
  }
add_filter('wp_nav_menu_args', 'my_custom_nav_menu');

以下2箇所を編集してファイルを更新する。

  • is_single(”)に該当のLPページの記事IDを入れる
  • $args[‘menu’] = ”に「外観」>「メニュー」で作成したメニュー名を入れる
function my_custom_nav_menu($args) {
    if(is_single('10')) {
      if ($args['theme_location'] === 'header_menu') {
        $args['menu'] = 'LPヘッダーメニュー';
      }
    } 
    return $args;
  }
add_filter('wp_nav_menu_args', 'my_custom_nav_menu');

functions.phpはどこ?

「外観」>「テーマファイルエディター」を選択し、右側のメニューの「テーマのための関数」をクリックするとfunctions.phpの編集画面になります。

記事IDはどうやって確認する?

LPページの編集画面のアドレスバーの「post=〇〇〇」の〇〇〇に入っている数字が記事IDです。

【4】子テーマのstyle.cssを編集する

子テーマのstyle.cssにヘッダーのカスタマイズCSSを追記してファイルを更新します。

下記コードを使うことでトップページで表示されるヘッダーメニューのように、ファーストビューに被さる形で表示することができます。

フォントサイズや文字色、最後の項目(ボタン)の背景色などはお好みで調整してください。

.single-lp .l-header {
	background: none;
	box-shadow: none!important;
	position: absolute!important;
}
.single-lp .l-header .l-header__inner {
	color: #fff;
}
.single-lp .c-gnav {
	align-items: center;
}
.single-lp .c-gnav>.menu-item>a .ttl {
	font-weight: bold;
	font-size: 20px;
}
.single-lp .c-gnav>.menu-item:last-child {
	height: 50px;
}
.single-lp .c-gnav>.menu-item >a {
	padding: 0 30px;
}
.single-lp .c-gnav>.menu-item:last-child >a {
	border-radius: 999px;
	padding: 0 60px;
	color: #fff;
	background-image: linear-gradient(100deg, rgb(51, 141, 244) 0%, rgb(53, 234, 255) 100%);
}
.single-lp .c-gnav>.menu-item>a:after {
	display: none;
}
シェアボタンを押したとき、シェアされる
  • URLをコピーしました!

ブロックエディター完全対応のWordPress有料テーマ。

この記事を書いた人

SWELLの使い方に関するお役立ち記事や、コーポレートサイトでよくあるセクションのコードスニペット・実際の作り方などをご紹介します。

目次