WordPress 3: menus

Es curioso que este script tan popular como CMS no contara con un buen sistema de manejo de menus, recién en esta versión 3 cuenta con esta novedosa función que genera menus usando UL y LI totalmente personalizables, bien podemos usar páginas internas o enlaces externos.

¿Cómo agregar el menu a nuestra plantilla?

La forma más sencilla sería:
[cc lang=»php»]

[/cc]
De esa forma coge por defecto el menú principal y usa como contenedores UL y LI

Podemos personalizar un poco nuestro menú, por ejemplo:
[cc lang=»php»]
‘menu-header’, ‘theme_location’ => ‘primary’ , ‘container’=>’div’) ); ?>
[/cc]
En este segundo ejemplo estamos asignando al contenedor la clase «menu-header», estamos indicando que el menu primario y además que el contendor es un div (por defecto se usa UL y LI)

Adicionalmente en el archivo functions.php debemos añadir:
[cc lang=»php»]
__( ‘Primary Navigation’, ‘twentyten’ ),
) );
?>
[/cc]

 

Personalizar el Contenedor

Para eso contamos con las propiedades container y container class y container-id
[cc lang=»php»]
‘menu-header’, ‘theme_location’ => ‘primary’ , ‘container’=>’div’, ‘container-id’=>’mimenu’) ); ?>
[/cc]

Eliminar el contenedor

Para eso usamos la la propiedad container pero con un container false
[cc lang=»php»]
‘primary’ , ‘container’=>’false’) ); ?>
[/cc]

Añadir una clase a un li del menu

Esto no se puede hacer directamente con el wp nav menu si no que debemos añadir una función en el functions.php como la siguiente:
[cc lang=»php»]
function custom_nav_class($classes, $item){
$classes[] = «mi-clase-personalizada»;
return $classes;
}
add_filter(‘nav_menu_css_class’ , ‘custom_nav_class’ , 10 , 2);
[/cc]