Come aggiungere una classe ul al nav

12 giu 2015, 16:27:28
Visualizzazioni: 49.8K
Voti: 5

Sto imparando a convertire l'HTML in WordPress e voglio convertire la classe in questo modo:

<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="#">Negozio<i class="fa fa-angle-down"></i></a>
            <ul role="menu" class="sub-menu">
                <li><a href="shop.html">Prodotti</a></li>
                <li><a href="product-details.html">Dettagli Prodotto</a></li> 
                <li><a href="checkout.html">Checkout</a></li> 
                <li><a href="cart.html">Carrello</a></li> 
                <li><a href="login.html">Accedi</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">Lista Blog</a></li>
                <li><a href="blog-single.html">Blog Singolo</a></li>
            </ul>
        </li> 
        <li><a href="404.html">404</a></li>
        <li><a href="contact-us.html">Contatti</a></li>
    </ul>
</div>

Questo è quello che ho fatto:

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

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

Come posso aggiungere una classe per ul?

0
Tutte le risposte alla domanda 5
1

Lo hai già fatto nel modo giusto. Se dai un'occhiata alla documentazione per wp_nav_menu, vedrai che menu_class è l'opzione corretta per la classe dell'UL:

wp_nav_menu( array(
    'theme_location' => 'top-menu',
    'container' => '',
    'menu_class'=> 'mainmenu pull-left *aggiungi-la-tua-classe-qui*'
 ) );
12 giu 2015 17:54:46
Commenti

Non dimenticare 'container' => 'ul',

Richard Lindhout Richard Lindhout
30 ago 2016 17:12:55
0

È semplice, devi solo aggiungere il parametro items_wrap e aggiungere o modificare l'attributo class:

wp_nav_menu( array(
    'theme_location' => 'top-menu',
    'container' => false,
    'items_wrap' => '<ul class="nav your_custom_class">%3$s</ul>',
));
12 giu 2015 20:55:40
1

WordPress crea il menu delle pagine predefinito in modo diverso dai menu attivi - quelli che crei e assegni nel backend. Non esiste un modo diretto per aggiungere classi all'elemento UL nei menu delle pagine, ma ci sono altri metodi. Prova ad aggiungere questo al tuo 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' );

Tieni presente che questo sostituirà qualsiasi id e classe esistenti, quindi li ho riaggiunti nell'esempio sopra. Ho anche aggiunto un id="main-menu" per completezza.

25 feb 2017 07:09:10
Commenti

Sporco, ma era l'unico modo per ottenere ciò che volevo fare. Grazie!

Jimmy Pelton Jimmy Pelton
29 set 2021 00:39:54
0

Ecco il tuo codice corretto. Ho testato l'aggiunta della classe all'elemento ul

wp_nav_menu( array( 
    'theme_location' => 'top-menu',
    'container'      => 'ul',
    'menu_class'     => 'mainmenu pull-left',
) );
27 apr 2017 20:59:28
0
       <?php 
         wp_nav_menu( array('menu' => 'Menu Principale' ,
        'menu_class' => 'nav navbar-nav',
         'container' => ''));
            ?>
29 mag 2017 10:38:05