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
?
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*'
) );
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>',
));
<?php
wp_nav_menu( array('menu' => 'Main Menu' ,
'menu_class' => 'nav navbar-nav',
'container' => ''));
?>
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',
) );
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.