Menús personalizados en WP

Una de las nuevas características de WordPress 3.0 es la creación de menús personalizados. Hasta ahora los usuarios tenían que hacer complicadas modificaciones en el código de sus plantillas o themes si querían añadir otros enlaces en el menú de navegación.

WordPress permitía mostrar solamente las páginas o solamente las categorías del blog pero no era posible mezclar ambas en el mismo menú. Con la nueva función wp_nav_menu() podemos escoger las páginas, las categorías y los enlaces (externos o internos) que deseemos mostrar en el mismo menú.

Está selección la podemos hacer desde el propio DashBoard o Backend, en Appearance – Menus, y podemos crear tantos menús como queramos. Desde la pestaña derecha le asignamos un nombre al menú y seleccionamos las categorías y páginas que deseemos mostrar en el menú marcándolas y pulsando el botón Add to Menu. Así como los enlaces que teclearemos en la ventana Custom links y después añadiremos al menú pulsando el botón Add to Menu.

Inicialmente si el theme no viene preparado, WordPress 3.0 nos permite ubicar el menú con un widget en el sidebar verticalmente. Aunque lo suyo es situarlo horizontalmente en la parte superior a continuación de la cabecera del theme. Para que una plantilla pueda hacer uso de esta posibilidad debe contener la función wp_nav_menu() en el archivo header.php.

WordPress indica que el theme no está preparado para el uso de menús con este mensaje.

Normalmente las plantillas hacen uso de las funciones wp_page_menu() o wp_lists_page() para crear un menú con las páginas del blog. Si sustituímos ese código por;

 PHP | 
 
 copy code |
?

  1. <?php wp_nav_menu( array( 'container_class' => 'menu-header',
  2. 'theme_location' => 'primary' ) );
  3. ?>

estaremos en disposición de usar el menú que configuremos en el DashBoard.

Los parámetros que se pasan a la función son; ‘container_class’ => ‘menu-header’, para decirle que aplique los estilos de la clase “menu-header” contenidos en el archivo style.css y ‘theme_location’ => ‘primary’ que le indica que es el primero de nuestros menús. Por supuesto, puedes usar otro nombre para container_class siempre que definas sus propiedades en la hoja de estilos style.css o incluso no usar ninguno.

Si el menú falla o no se encuentra, se usará la función wp_page_menu() que mostrará un menú sólo con las páginas.

Para mostrar un segundo menú se procede de la misma manera pero indicándo la palabra secondary:

 PHP | 
 
 copy code |
?

  1. <?php wp_nav_menu( array( 'container_class' => 'menu-header',
  2. 'theme_location' => 'secondary' ) );
  3. ?>

Lo visto anteriormente se refiere a la ubicación y la elección de los menús en las distintas zonas de nuestro theme. Es decir, no siempre podemos necesitar un sólo menú superior o que éste aparezca en la página principal, podríamos hacer uso del menú que nos interese.

Pero para poder hacer uso de los menús tenemos que decirle a WordPress cuál es cada uno y así nos permita seleccionarlos y configurarlos desde el DashBoard. Eso lo hacemos en el archivo functions.php. Para el caso de dos menús:

 PHP | 
 
 copy code |
?

  1. register_nav_menus( array (
  2. 'primary' => __( 'Navegacion Principal', 'tu_theme' ),
  3. 'secondary'=>__( 'Navegacion Secundaria', 'tu_theme' )));

Este será el resultado en la ventana de configuración de menús.

Via: Enraladas.

Leave a Reply

Your email address will not be published. Required fields are marked *