Je veux cacher la classe div "navmain2" si le menu est vide. Voir le code ci-dessous:
<!-- 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 -->-->
J'ai un logo et une div avec le texte à l'intérieur navmain2 comme vous pouvez le voir.
La question est:
Est-il possible de cacher toute la div navmain2 si le wp_nav_menu est vide?
Attribuer le menu à une chaîne:
$menu = wp_nav_menu(
array (
'echo' => FALSE,
'fallback_cb' => '__return_false'
)
);
if ( ! empty ( $menu ) )
{
echo '<div class="navmain2">' . $menu . '</div>';
}
Si vous voulez vérifier qu'un menu est assigné, vous pouvez utiliser has_nav_menu () . En passant par l'ID de menu enregistré comme enregistré via register_nav_menu ()
<?php if ( has_nav_menu( 'primary' ) ) { ?>
<div class="navmain2">
</div>
<?php }
Remarque: Cette fonction affichera le div si l'emplacement primary
a un menu attribué, elle affichera également le div si le menu est assigné et vide.
Solution n ° 2:
Est de cacher la div à travers Js.
$('#jqm-home').live("pagecreate", function () {
$(".navmain2").each(function () {
if ($(this).children("ul").length == 0) {
$(this).hide();
}
});
});