Cómo agregar una clase ul en nav
He estado aprendiendo a convertir HTML a WordPress y quiero convertir una clase como esta:
<div class="mainmenu pull-left">
<ul class="nav navbar-nav collapse navbar-collapse">
<li><a href="index.html" class="active">Inicio</a></li>
<li class="dropdown"><a href="#">Tienda<i class="fa fa-angle-down"></i></a>
<ul role="menu" class="sub-menu">
<li><a href="shop.html">Productos</a></li>
<li><a href="product-details.html">Detalles del Producto</a></li>
<li><a href="checkout.html">Pago</a></li>
<li><a href="cart.html">Carrito</a></li>
<li><a href="login.html">Iniciar Sesión</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 del Blog</a></li>
<li><a href="blog-single.html">Entrada Individual</a></li>
</ul>
</li>
<li><a href="404.html">404</a></li>
<li><a href="contact-us.html">Contacto</a></li>
</ul>
</div>
Esto es lo que he hecho:
if ( ! function_exists( 'mytheme_setup' ) ) :
function wpflex_setup() {
// Registrar menús de navegación
register_nav_menus( array(
'primary' => 'Menú Principal'
) );
}
endif;
wp_nav_menu( array(
'theme_location' => 'top-menu',
'container' => '',
'menu_class' => 'mainmenu pull-left',
) );
¿Cómo agregar una clase para ul
?
Ya lo hiciste correctamente. Si revisas la Documentación para wp_nav_menu, verás que menu_class es la opción correcta para la clase del UL:
wp_nav_menu( array(
'theme_location' => 'top-menu',
'container' => '',
'menu_class'=> 'mainmenu pull-left *agrega-tu-clase-aquí*'
) );

WordPress crea el menú de páginas por defecto de forma diferente a los menús activos (aquellos que creas y asignas en el panel de administración). No hay una forma directa de agregar clases al elemento UL en los menús de páginas, pero existen otras formas. Prueba agregando esto a tu archivo 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' );
Ten en cuenta que esto reemplazará cualquier ID y clase existente, por lo que los he vuelto a agregar en el ejemplo anterior. También añadí un id="main-menu" para completar.

<?php
// Mostrar el menú de navegación principal
wp_nav_menu( array(
'menu' => 'Menú Principal', // Nombre del menú a mostrar
'menu_class' => 'nav navbar-nav', // Clases CSS para el elemento ul
'container' => '' // Eliminar el contenedor div por defecto
));
?>
