¿Estás cansado de tu vieja barra de navegación?. Si es así ¿que tal añadir una lista desplegable de categorías?, algo al estilo de los themes tipo revista.

Vamos a ver como hacer una lista desplegable de tus páginas y sub-páginas, incluyendo al final como mostrar tus categorías directamente en el menú.

¿Estas list@?. Vamos con ello …

HTML y PHP

Empezaremos usando las funciones internas de WordPress para obtener la lista de páginas y categorías. Edita el fichero header.php de tu plantilla y remplaza el antiguo código 'nav' por este otro:

PHP:
  1. <ul id="nav" class="clearfloat">
  2. <li><a href="<?php&phpMyAdmin=3e6c4943d9a6t7c8283c echo get_option('home'); ?>/" class="on">Blog</a></li>
  3. <?php wp_list_pages('title_li='); ?>
  4. <li class="cat-item"><a href="#">Categorías</a>
  5. <ul class="children">
  6. <?php wp_list_categories('orderby=name&title_li=');
  7. $this_category = get_category($cat);
  8. if (get_category_children($this_category->cat_ID) != "") {
  9. echo "</ul><ul>";
  10. wp_list_categories('orderby=id&show_count=0&title_li=
  11. &use_desc_for_title=1&child_of='.$this_category->cat_ID);
  12. echo "</ul>";
  13. }
  14. ?>
  15. </li></ul>

Este código hará una lista de todas tus páginas y sub-páginas, así como una lista de las Categorías. Cuando un usuario coloque el cursor sobre el nivel superior de páginas o categorías se mostrará un desplegable de las sub-páginas/categorías.

CSS

A pesar de que el código anterior es completamente funcional, nuestro script necesita un poco de estilo CSS. Este en concreto, tomado del theme gratuito Mimbo, es perfecto para el ejemplo que estamos utilizando.

CSS:
  1. #nav{
  2. background:#222;
  3. font-size:1.1em;
  4. }
  5. #nav, #nav ul {
  6. list-style: none;
  7. line-height: 1;
  8. }
  9. #nav a, #nav a:hover {
  10. display: block;
  11. text-decoration: none;
  12. border:none;
  13. }
  14. #nav li {
  15. float: left;
  16. list-style:none;
  17. border-right:1px solid #a9a9a9;
  18. }
  19. #nav a, #nav a:visited {
  20. display:block;
  21. font-weight:bold;
  22. color: #f5f5f4;
  23. padding:6px 12px;
  24. }
  25. #nav a:hover, #nav a:active, .current_page_item a, #home .on {
  26. background:#000;
  27. text-decoration:none
  28. }
  29. #nav li ul {
  30. position: absolute;
  31. left: -999em;
  32. height: auto;
  33. width: 174px;
  34. border-bottom: 1px solid #a9a9a9;
  35. }
  36. #nav li li {
  37. width: 172px;
  38. border-top: 1px solid #a9a9a9;
  39. border-right: 1px solid #a9a9a9;
  40. border-left: 1px solid #a9a9a9;
  41. background: #777;
  42. }
  43. #nav li li a, #nav li li a:visited {
  44. font-weight:normal;
  45. font-size:0.9em;
  46. color:#FFF;
  47. }
  48. #nav li li a:hover, #nav li li a:active {
  49. background:#000;
  50. }
  51. #nav li:hover ul, #nav li li:hover ul, #nav li li li:hover ul, #nav li.sfhover ul, #nav li li.sfhover ul, #nav li li li.sfhover ul {
  52. left: auto;
  53. }
  54. a.main:hover {
  55. background:none;
  56. }

Javascript

Los navegadores actuales (Safari, Firefox, Opera, e incluso Internet Explorer 7) no tienen problemas con la clase ':hover' en elementos li. Pero, como seguro ya has imaginado, el viejo y obsoleto Internet Explorer 6 no puede con ellos.

Para hacer nuestro script compatible también con este caduco navegador (IE6), tenemos que cargar este pequeño, y poco molesto, código Javascript en la sección 'head' de nuestro documento HTML document, o incluso mejor en un fichero .js aparte.

JavaScript:
  1. <![CDATA[//><!--
  2. sfHover = function() {
  3. var sfEls = document.getElementById("nav").getElementsByTagName("LI");
  4. for (var i=0; i<sfEls.length; i++) {
  5. sfEls[i].onmouseover=function() {
  6. this.className+=” sfhover”;
  7. }
  8. sfEls[i].onmouseout=function() {
  9. this.className=this.className.replace(new RegExp(” sfhover\\b”), “”);
  10. }
  11. }
  12. }
  13. if (window.attachEvent) window.attachEvent(onload”, sfHover);
  14. //–><!]]>

Ya puedes ofrecer un aspecto profesional a tu blog con menús desplegables, que además son muy útiles para tus lectores.

Vía

¿Te gustó este post? ¡Compártelo!
  • Bitacoras.com
  • TwitThis
  • Facebook
  • Meneame
  • Google Bookmarks
  • del.icio.us
  • Live
  • Technorati
  • Ping.fm
  • Wikio
  • Turn this article into a PDF!
  • E-mail this story to a friend!
  • Print this article!

También te puede interesar:

cursos formación continua

    24 comentarios en “Lista de Categorías Desplegable”

  1. emiliano (54 comentarios) dijo:

    es justo lo que estoy necesitando!!! (entre otras cosas!), buenísimo el post!... pero, servirá para colocar arriba la lista que aparece actualmente sobre un costado de mi blog (el indice que está en un widguet)?... gracias!

  2. rafasilva (1 comentarios) dijo:

    Estimados. Muy buen porst. Pero tengo una duda. Es posible abarcar también páginas hijas de las sub-páginas. ???

    Eso gracias.

  3. Sabogal (31 comentarios) dijo:

    Los enlaces en menú de este tipo, ¿son seguidos correctamente por los buscadores?

    Saludos!

  4. Fernando Tellado (2313 comentarios) dijo:

    @emiliano, es precisamente para eso, pero para categorías y páginas.

    @Sabogal, los buscadores leen el código de la página y el contenido de contexto ¿para que quieres que sigan tu lista de categorías cuando lo que importa es el contenido? ;)

    @rafasilva, si claro

  5. dj duck (8 comentarios) dijo:

    yo uso un plugin y funsiona perfectamente solo se instalar y se agraga un codigo simple al header.php

  6. Fernando Tellado (2313 comentarios) dijo:

    Y el plugin es ?¿

  7. [...] un blog para que muestre una página estática en vez de posts o mas avanzados como crear una lista desplegable de categorías. Así hasta mas de 40 trucos, la mayoría muy [...]

  8. dany (1 comentarios) dijo:

    como entro a header.php?? jeje

  9. Fernando Tellado (2313 comentarios) dijo:

    Dany, desde tu aplicación de ftp o en el editor de archivos de tu WP.

  10. dj duck, si no vas a decir cual es el plugin mejor no digas nada.

    (Comentario editado por Guillermo, se quitaron ofensas)

  11. Alsor (1 comentarios) dijo:

    Buenisimo post... estaba buscando esto!! Me queda una duda. ¿Es posible editarlo para que despliegue las sub-categorías de forma lateral al poner el ratón sobre la categoría? Ahora me salen las categorías y las subcategorías todas juntas y sin distinción y necesitaría que también las sub-categorías fueran desplegables.

    Muchas gracias!

  12. diseño web (9 comentarios) dijo:

    exelente post, hay muchos themes muy buenos pero no funcionales al tener muchas categorias en un blog

  13. AndresRV (2 comentarios) dijo:

    Hola. He usad el HTMl en http://www.f1inlive.com, pero tengo la duda de como intercambiar la posicion de Pilotos con cualquier otra categoria. Si os fijais, al usar el codigo cat_ID, me sale así. Quisrea saber si hay una solucion aparte de volver a escribir categorias.

    Saludos

  14. Fernando Tellado (2313 comentarios) dijo:

    @AndresRv: ¿te refieres a darles otro orden en el listado?

  15. Emiliano (54 comentarios) dijo:

    no entiendo como "remplazar el antiguo codigo nav"... es decir... me podrías decir donde debería ponerlo con más precisión? (y que debería borrar)... mil gracias... mataría saber cual es ese plugin!!!... saludetes, emi

  16. Emiliano (54 comentarios) dijo:

    este va como loco:
    ryans-suckerfish-wordpress-dropdown-menu

  17. ^DiAmOnD^ (10 comentarios) dijo:

    Uhmmm...¿se podría adaptar para que listara los meses del archivo en vez de las categorías?

  18. AndresRv (2 comentarios) dijo:

    Si, fernando, justo eso. Quiero cambiar el orden ese. Y estarioa bien saber si alguien podria ayudarme. Gracias

  19. Pablo (48 comentarios) dijo:

    Hola, mi problema es que me salen las páginas y subpáginas a la vez. Y yo quiero que las subpáginas sólo aparezcan cuando pongo el cursor encima de la "página madre".
    Hay alguna forma de hacerlo???

  20. Marlon (3 comentarios) dijo:

    Yo necesito que solo me muestre las sub paginas, de la pagina madre. Asi como esta muestra tambien las subpaginas del las subpaginas.

  21. lo instale tal cual lo describes, pero los menus se superponen entre si y se ven ensimados :S
    a alguien mas le paso esto?

  22. MRTecno (2 comentarios) dijo:

    Fernando te consulto lo siguiente:

    Necesito que la lista desplegable me muestre una determinada categoria y subcategorias con el feed correspondiente a cada una.. cual seria el código que cambiaria o lo que tendria que agregar??

    Desde ya muchas gracias!!

  23. Juan Carlos (37 comentarios) dijo:

    Habria algún modo de poner una lista desplegable así en un elemento de la barra lateral, como por ejemplo el que tú tienes de Ayuda para... ??

  24. JYam (3 comentarios) dijo:

    Muy buen post, voy a ponerme a trabajar en esto. Lo necesitaba.
    Por siaca para el sidebar.php encontre un plugin que ayuda mucho es el WP-dTree
    no he intentado instalarlo en el header.php. Prefiero de esta forma como lo expones en el post.
    Se agradece.

Escribe un Comentario

XHTML: Puedes usar estos códigos: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>



Comentarios adicionales gracias BackType

Subir

Anúnciese aquí
Expertos en WordPress
Evolución Euribor
Consigue 28 themes premium por menos de 14 euros
Participa en el Debate
  • Macgrafic: @Jose esta aplicación es para el iPhone y Puedes gestionar tu blog de tu dominio o de...
  • fff:
  • Abundancia33: Actualicé en algunos blogs y si hay un problema, con esta versión desaparece el...
  • Hugo Alfaro: Wow!… esta utilidad me ha sido de gran utilidad… ideal para los sitios...
  • Jose: P.D. Enhorabuena por la web! Sois magnificos!
Noticias Breves
  • BuddyPress 1.2 está prácticamente lista para lanzarse salvo que las pruebas de los usuarios digan lo contrario. Ya puedes descargarla y empezar a comprobarla (enlace al svn). En esta nueva versión se han cerrado más de 125 tickets desde la última beta.

    [#3]

  • Ya está disponible WordPress MU 2.9.1 y José Conti me avisa que en unas horas tendrá lista la traducción para poder tener actualizado y listo tu sitio multiusuario.

    [#6]

  • ¿Sabías que Kubrick, el tema que va a ser sustituido en 2010 lo creó un desarrollador danés?. Toda la historia de este tema, ya mítico, la tienes en este artículo (traducido con Google).

    [#26]


  • Ahora mismo en los FOROS ...
    Usuarios Registrados
  • Acceder

  • Translate this Blog
    Spanish flagItalian flagChinese (Simplified) flagPortuguese flagEnglish flagGerman flagFrench flagJapanese flagRussian flagSwedish flagCatalan flagHebrew flag                              
    By N2H