« Wordpress cómo CMS / I
» Hoja de estilos maestra

CSS, Recursos, Wordpress, PHP

Wordpress cómo CMS / II

06.18.07 | 3 Comments

Crea un menú horizontal para tu Wordpress

Menu horizontal desplegable en Wordpress

En este tutorial voy a explicar cómo diseñar un menu horizontal para navegar por las páginas estáticas de nuestro blog. En el post anterior ya configuramos nuestro Wordpress para que nuestro blog sea una página más de nuestro site, de manera que aparezca cómo un botón más del menu.

El menu de navegación lo pondremos encima de la cabecera de la página. Para ello tendremos que editar el archivo header.php de nuestro Wordpress. El código del menú iría detras de la etiqueta <div id="nav"> del header.php

Comenzamos por las etiquetas HTML. Para crear un menú tenemos que definir una lista sin numerar mediante las etiquetas <ul> y <li>, anidadadas dentro de un div al que identificaremos con el id “nav”. Para marcar los elementos de la lista utilizaremos el script <?php wp_list_pages(’sort_column=menu_order&title_li=’); ?>, que lista las páginas estáticas del blog (el script lo he extraido del archivo sidebar.php) según el orden que les demos en el administrador. El código quedaría algo así:

  1. <div id="nav">
  2. <ul>
  3. <?php wp_list_pages('sort_column=menu_order&title_li='); ?>
  4. </ul>
  5. </div>

Ahora probamos a crear las páginas a las que enlazará nuestro menú. Las creamos desde el administrador, en la pantalla Escribir - Páginas. A modo de prueba yo he creado las siguientes:

  • Home
  • Company
  • Services
  • Solutions
  • Partners
  • Blog
  • Contacts

Para que aparezcan ordenadas en el menú teneis que asignarle un número en la pestaña Orden de la página que aparece en el administrador, en la pantalla Administrar - Páginas.

Pantallazo del administrador de Wordpress, Administrar - Página

Podeis probar también a crear una subpágina, recomiendo que leais antes la el artículo Organizando sus Páginas de la documentación de Wordpress

“Tal como usted puede tener Subcategorías dentro de sus Categorías, usted también puede tener Subpáginas dentro de sus Páginas, creando una jerarquía de páginas.”

Para crear una subpágina, desde el administrador creamos una página cómo lo hacemos normalmente, sólo que en la pestaña Página superior seleccionamos la página madre de esta.

Pantallazo del administrador de Wordpress, Escribir - Página

Yo por ejemplo he creado una subpágina de nombre Service One cuyo padre sería la página Services. La idea sería crear un menú de navegación desplegable para poder acceder a todas las páginas y a sus respectivas subpáginas. Para la presentación del menú he recurrido al menú Suckerfish Dropdowns, de la página HTML Dog.

Para utilizar este menú tendreis que editar la hoja de estilos de vuestro theme y añadir algo de Javascript dentro del <head> del archivo header.php. Para no extenderme demasiado en cómo desarrollar este menú os remito a que leais el tutorial que os he citado anteriormente.

A modo de ayuda os dejo el código CSS que he utilizado yo para el menú:

  1. /* Navmenu based on "Son of Suckerfish Dropdowns" */
  2. #nav ul {
  3. background: #000;
  4. display: block;
  5. height: 35px;
  6. list-style: none;
  7. padding: 0;
  8. }
  9. #nav a,
  10. #nav a:link,
  11. #nav a:visited {
  12. color: #FFF;
  13. display: block;
  14. height: 15px;
  15. padding: 10px 0;
  16. width: 100px;
  17. }
  18. #nav a:hover{
  19. background: #FF0000;
  20. }
  21. #nav a:active{
  22. background: #FF9900;
  23. }
  24. #nav li {
  25. border-right: 1px solid #5C7794;
  26. float: left;
  27. text-align: center;
  28. }
  29. #nav li ul {
  30. left: -999em;
  31. position: absolute;
  32. width: 100px;
  33. }
  34. #nav li:hover ul,
  35. #nav li.sfhover ul {
  36. left: auto;
  37. }

Y lo siguiente es el código Javascript que hay que incluir en el header.php del theme:

  1. <script type="text/javascript">
  2. sfHover = function() {
  3. var sfEls =
  4. document.getElementById("nav").getElementsByTagName("li");
  5. for (var i=0; i<sfEls.length; i++) {
  6. sfEls[i].onmouseover=function() {
  7. this.className+=" sfhover";
  8. }
  9. sfEls[i].onmouseout=function() {
  10. this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
  11. }
  12. }
  13. }
  14. if (window.attachEvent) window.attachEvent("onload", sfHover);
    </script>

Y con esto listo, ya tenemos nuestro menú horizontal.

3 Comments

have your say

Add your comment below, or trackback from your own site. Subscribe to these comments.

Be nice. Keep it clean. Stay on topic. No spam.

You can use these tags:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>

:

:


« Wordpress cómo CMS / I
» Hoja de estilos maestra