カスタムメニューがある時、ない時の判別【WordPress】
※自分用の備忘録です
カスタムメニューが設定されている時にはハンバーガーメニューを表示し、設定されていないときはハンバーガーメニューを非表示にする方法です。
コードの全容
<!-- メニューがある時 -->
<?php if (has_nav_menu('header-menu')) : ?>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<!-- カスタムメニュー -->
<?php wp_nav_menu(array(
'theme_location' => 'header-menu',
'container' => 'div',
'container_id' => 'navbarSupportedContent',
'container_class' => 'collapse navbar-collapse',
'menu_class' => 'navbar-nav me-auto mb-2 mb-lg-0',
'fallback_cb' => ''
)); ?>
<!-- メニューがない時 -->
<?php else : ?>
<?php endif; ?>
「has_nav_menu」で有無を判別
「has_nav_menu」というWordPressタグを使いfunctions.phpで設定したカスタムメニュー名と同じものが設定されているかを判別します。
if文で分岐を作る
if文を使い、カスタムメニューがある時にはハンバーガーメニューやカスタムメニュー自体表示するように設定し、elseには特に何も記述をしないことで非表示にします。