メニューが空の場合はdivクラス "navmain2"を隠したい。以下のコードを参照してください。
<!-- Start main navigation -->
<div class="navmain2">
<div id="logo"></div>
<!-- Gets main menu by id -->
<span></span>
<?php
wp_nav_menu( array(
'menu' => 11,
'container' =>false,
'menu_class' => 'nav',
'echo' => true,
'before' => '',
'after' => '',
'link_before' => '',
'link_after' => '',
'depth' => 0,
'walker' => new description_walker())
);
?>
<!-- /main menu -->
<div id="klicka">Click here! Click here! Click here</div>
</div><!-- /main navigation -->-->
ご覧のとおり、 navmain2 の中にテキストとロゴとdivがあります。
問題は次のとおりです。
wp_nav_menuが空の場合、navmain2 div全体を非表示にすることは可能ですか?
メニューを文字列に割り当てます。
$menu = wp_nav_menu(
array (
'echo' => FALSE,
'fallback_cb' => '__return_false'
)
);
if ( ! empty ( $menu ) )
{
echo '<div class="navmain2">' . $menu . '</div>';
}
メニューが割り当てられていることを確認したい場合は、 has_nav_menu() を使用できます。 register_nav_menu()を介して登録されている登録済みメニューIDを通過させる
<?php if ( has_nav_menu( 'primary' ) ) { ?>
<div class="navmain2">
</div>
<?php }
注:この関数は、位置primary
にメニューが割り当てられている場合はdivを出力し、メニューが割り当てられていて空の場合はdivも出力します。
ソリューション番号2:
Jsでdivを隠すことです。
$('#jqm-home').live("pagecreate", function () {
$(".navmain2").each(function () {
if ($(this).children("ul").length == 0) {
$(this).hide();
}
});
});