web-dev-qa-db-fra.com

Comment ajouter ul class sur nav

J'ai appris à convertir HTML en WordPress et je souhaite convertir en classe comme ceci:

<div class="mainmenu pull-left">
    <ul class="nav navbar-nav collapse navbar-collapse">
        <li><a href="index.html" class="active">Home</a></li>
        <li class="dropdown"><a href="#">Shop<i class="fa fa-angle-down"></i></a>
            <ul role="menu" class="sub-menu">
                <li><a href="shop.html">Products</a></li>
                <li><a href="product-details.html">Product Details</a></li> 
                <li><a href="checkout.html">Checkout</a></li> 
                <li><a href="cart.html">Cart</a></li> 
                <li><a href="login.html">Login</a></li> 
            </ul>
        </li> 
        <li class="dropdown"><a href="#">Blog<i class="fa fa-angle-down"></i></a>
            <ul role="menu" class="sub-menu">
                <li><a href="blog.html">Blog List</a></li>
                <li><a href="blog-single.html">Blog Single</a></li>
            </ul>
        </li> 
        <li><a href="404.html">404</a></li>
        <li><a href="contact-us.html">Contact</a></li>
    </ul>
</div>

C'est ce que j'ai fait:

if ( ! function_exists( 'mytheme_setup' ) ) :
    function wpflex_setup() {  
        register_nav_menus( array(
            'primary' => 'Primary Menu'
        ) );
    }
endif;

wp_nav_menu( array( 
    'theme_location' => 'top-menu',
    'container'      => '',
    'menu_class'     => 'mainmenu pull-left',
) );

Comment ajouter une classe pour ul?

3
dkvnk

Vous l'avez déjà fait de la bonne façon. Si vous regardez dans la documentation de wp_nav_menu , vous verrez que menu_class est la bonne option pour la classe UL:

wp_nav_menu( array(
    'theme_location' => 'top-menu',
    'container' => '',
    'menu_class'=> 'mainmenu pull-left *add-your-class-here*'
 ) );
4
ChrisL

C'est simple il suffit d'ajouter le paramètre items_wrap et d'ajouter ou de modifier la classe attr:

wp_nav_menu( array(
    'theme_location' => 'top-menu',
    'container' => false,
    'items_wrap' => '<ul class="nav your_custom_class">%3$s</ul>',
));
4
Behzad
       <?php 
         wp_nav_menu( array('menu' => 'Main Menu' ,
        'menu_class' => 'nav navbar-nav',
         'container' => ''));
            ?>
1
Alpesh Navadiya

Voici votre code fixe. Je l'ai testé ajouter classe à ul

wp_nav_menu( array( 
    'theme_location' => 'top-menu',
    'container'      => 'ul',
    'menu_class'     => 'mainmenu pull-left',
) );
1
J. Shabu

Wordpress crée un menu de page par défaut différent des menus actifs - ceux que vous créez et affectez dans le backend. Il n'y a pas de moyen direct d'ajouter des classes à l'UL dans les menus de page, mais il y a d'autres moyens. Essayez d'ajouter ceci à votre functions.php

function add_id_and_classes_to_page_menu( $ulclass ) {
  return preg_replace( '/<ul>/', '<ul id="main-menu" class="nav navbar-nav collapse navbar-collapse">', $ulclass, 1 );
}
add_filter( 'wp_page_menu', 'add_id_and_classes_to_page_menu' );

N'oubliez pas que cela remplacera tous les identifiants et classes existants, je les ai donc rajoutés dans l'exemple ci-dessus. J'ai également ajouté un id = "menu principal" pour l'achèvement.

0
Ted