web-dev-qa-db-fra.com

Définir si condition avec wp_nav_menu

J'ai créé un nouveau menu et ajoute le code ci-dessous dans footer.php pour afficher mon menu.

wp_nav_menu( array('menu' => 'footer-cn', 'menu_id' => 'nav', 'menu_class' => 'ft-nav' ));

Actuellement, je n’ai ajouté aucune page dans ce menu, je souhaite donc définir une condition si des pages sont disponibles dans footer-cn puis afficher le menu.

Je veux mettre la condition quelque chose comme ceci:

<?php
    if(){ // Some condition
        wp_nav_menu( array('menu' => 'footer-cn', 'menu_id' => 'nav', 'menu_class' => 'ft-nav' ));
    }
?>

C'est possible?

Merci.

enter image description here

1
Mr.Happy

Pas besoin d'utiliser conditionnel ici pour masquer votre menu de navigation lorsqu'il est vide.

Regardez wp_nav_menu( $args ); . Il accepte les arguments suivants

$defaults = array(
    'theme_location'  => '',
    'menu'            => '',
    'container'       => 'div',
    'container_class' => '',
    'container_id'    => '',
    'menu_class'      => 'menu',
    'menu_id'         => '',
    'echo'            => true,
    'fallback_cb'     => 'wp_page_menu',
    'before'          => '',
    'after'           => '',
    'link_before'     => '',
    'link_after'      => '',
    'items_wrap'      => '<ul id="%1$s" class="%2$s">%3$s</ul>',
    'depth'           => 0,
    'walker'          => ''
);

wp_nav_menu( $defaults );

Le plus important ici est 'fallback_cb'

$ fallback_cb (chaîne) (optionnel)

Si le menu n'existe pas, utilisez la fonction de repli. Défini sur false pour éviter tout repli. Remarque: Passe $ args à la fonction personnalisée.

Par défaut: wp_page_menu

Donc, pour masquer un menu lorsqu'il est vide, vous pouvez simplement ajouter ceci à vos arguments

'fallback_cb' => false

Donc, votre code de fin devrait être

wp_nav_menu( array('menu' => 'footer-cn', 'menu_id' => 'nav', 'menu_class' => 'ft-nav',  'fallback_cb' => false));
2
Pieter Goosen