Cum să adaugi clasa ul pentru meniu în WordPress

12 iun. 2015, 16:27:28
Vizualizări: 49.8K
Voturi: 5

Am învățat să convertesc HTML în WordPress și vreau să convertesc clasele astfel:

<div class="mainmenu pull-left">
    <ul class="nav navbar-nav collapse navbar-collapse">
        <li><a href="index.html" class="active">Acasă</a></li>
        <li class="dropdown"><a href="#">Magazin<i class="fa fa-angle-down"></i></a>
            <ul role="menu" class="sub-menu">
                <li><a href="shop.html">Produse</a></li>
                <li><a href="product-details.html">Detalii Produs</a></li> 
                <li><a href="checkout.html">Finalizare Comandă</a></li> 
                <li><a href="cart.html">Coș</a></li> 
                <li><a href="login.html">Autentificare</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">Listă Blog</a></li>
                <li><a href="blog-single.html">Articol Blog</a></li>
            </ul>
        </li> 
        <li><a href="404.html">404</a></li>
        <li><a href="contact-us.html">Contact</a></li>
    </ul>
</div>

Iată ce am făcut până acum:

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',
) );

Cum pot adăuga clasa pentru elementul <ul>?

0
Toate răspunsurile la întrebare 5
1

Ai făcut deja în mod corect. Dacă te uiți în Documentația pentru wp_nav_menu, vei observa că menu_class este opțiunea corectă pentru clasa UL:

wp_nav_menu( array(
    'theme_location' => 'top-menu',
    'container' => '',
    'menu_class'=> 'mainmenu pull-left *adaugă-clasa-ta-aici*'
 ) );
12 iun. 2015 17:54:46
Comentarii

Nu uita 'container' => 'ul',

Richard Lindhout Richard Lindhout
30 aug. 2016 17:12:55
0

Este simplu, trebuie doar să adaugi parametrul items_wrap și să modifici sau să adaugi atributul class:

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

WordPress creează meniul implicit de pagini diferit de meniurile active - cele pe care le creezi și le atribuie în backend. Nu există o modalitate directă de a adăuga clase la elementul UL în meniurile de pagini, dar există alte metode. Încearcă să adaugi acest cod în fișierul tău 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' );

Ține cont că acest cod va înlocui orice id și clase existente, motiv pentru care le-am readăugat în exemplul de mai sus. De asemenea, am adăugat un id="main-menu" pentru completitudine.

25 feb. 2017 07:09:10
Comentarii

Murdar, dar a fost singura modalitate prin care am reușit să obțin ceea ce voiam să fac. Mulțumesc!

Jimmy Pelton Jimmy Pelton
29 sept. 2021 00:39:54
0

Iată codul tău corectat. L-am testat și am adăugat clasa la 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' => 'Meniu Principal' ,
        'menu_class' => 'nav navbar-nav',
         'container' => ''));
            ?>
29 mai 2017 10:38:05