Autor Tema: Integración de menú desplegable 100% CSS en WordPress  (Leído 1202 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Angeles Portillo

  • Administrador
  • ******
  • Mensajes: 1.305
  • Agradecimientos: 819
    • Ver Perfil
    • Zanguanga
Integración de menú desplegable 100% CSS en WordPress
« en: 08 de Febrero de 2010, 20:09 »
Hola,
supongo que estoy en el hilo correcto (como es nuevo, aún tengo mis dudas :p )

Quisiera saber si alguien se atreve a adaptar este ejemplo: http://araudi.net/Desplegables/menu_desplegable1.html

a una función de WordPress, con el objeto de que el menú incluya automáticamente las páginas o subpáginas que se vayan añadiendo.

O si ya existe, que también es posible, agradecería un enlace, pues hasta ahora solo he encontrado este tipo de menús con javascript y algunos demasiado engorrosos :P
« última modificación: 08 de Febrero de 2010, 20:12 por Angeles Portillo »

Desconectado metacortex

  • Moderador
  • *****
  • Mensajes: 84
  • Agradecimientos: 11
    • Ver Perfil
    • Mi Blog
Re:Integración de menú desplegable 100% CSS en WordPress
« Respuesta #1 en: 10 de Febrero de 2010, 20:04 »
Hola Ángeles, todo es cuestión de jugar con list_pages y los estilos, adaptándolos a la maquetación de menú que quieras. Puedes resolverlo con una sola etiqueta. En realidad es muy sencillo implementar datos dinámicos en cualquier estructura HTML estática. A menos que haya entendido mal tu pregunta.
Debes comprender a Wordpress antes de comenzar a desarrollar/diseñar con éste. No hay otra vía.

Desconectado Lluna

  • *
  • Mensajes: 1
  • Agradecimientos: 0
    • Ver Perfil
Re:Integración de menú desplegable 100% CSS en WordPress
« Respuesta #2 en: 08 de Marzo de 2010, 12:27 »
Hola Ángeles, eso lo puedes hacer de dos modos, o bien te haces tu propia funcion para listar las páginas o bien puedes usar el filtro wp_list_pages en interceptar la salida HTML, cargarla en DOMXML y modificarla a tu antojo

Saludos!

Desconectado Angeles Portillo

  • Administrador
  • ******
  • Mensajes: 1.305
  • Agradecimientos: 819
    • Ver Perfil
    • Zanguanga
Re:Integración de menú desplegable 100% CSS en WordPress
« Respuesta #3 en: 09 de Marzo de 2010, 02:33 »
Bueno, gracias a metacortex y Lluna por las respuestas.

De la segunda no entendí nada, pero es a causa de mi ignorancia (no soy programadora)

Citar
usar el filtro wp_list_pages en interceptar la salida HTML

Creo que poniendo mucho empeño podría llegar a comprenderlo :p

Citar
cargarla en DOMXML y modificarla a tu antojo

eso ya ni con empeño, lo del DOMXML me suena directamente a chino

Cuando tenga tiempo lo iré mirando y si progreso, os lo cuento. ¡Gracias!

Desconectado metacortex

  • Moderador
  • *****
  • Mensajes: 84
  • Agradecimientos: 11
    • Ver Perfil
    • Mi Blog
Re:Integración de menú desplegable 100% CSS en WordPress
« Respuesta #4 en: 17 de Marzo de 2010, 02:08 »
Citar
lo del DOMXML me suena directamente a chino

Y a mí.  :(
Debes comprender a Wordpress antes de comenzar a desarrollar/diseñar con éste. No hay otra vía.

Desconectado metacortex

  • Moderador
  • *****
  • Mensajes: 84
  • Agradecimientos: 11
    • Ver Perfil
    • Mi Blog
Re:Integración de menú desplegable 100% CSS en WordPress
« Respuesta #5 en: 02 de Abril de 2010, 18:35 »
Ángeles, acabo de encontrar una guía que puede darte un buen empujón en cuanto a lo que buscas:

http://anthologyoi.com/wordpress/displaying-wordpress-categories-in-a-horizontal-dropdown-menu.html

como puede ver, allí se trabaja con categorías, pero es exactamente lo mismo que las páginas, dado que el html generado es igual (con distintos estilos, desde luego).

El asunto es básicamente como te mencioné al principio: revisar la estructura HTML y luego proceder con la presentación. De hecho te animo a trastear un poco por ti misma. Aquí te dejo también un enlace a un montón de modelos de menús desplegables en HTMl y CSS, a los cuales sólo falta implementarles los datos dinámicos de Wordpress:

http://www.cssplay.co.uk/menus/ (Busca la sección "Multi-Level - Dropdown")
Debes comprender a Wordpress antes de comenzar a desarrollar/diseñar con éste. No hay otra vía.

Desconectado Angeles Portillo

  • Administrador
  • ******
  • Mensajes: 1.305
  • Agradecimientos: 819
    • Ver Perfil
    • Zanguanga
Re:Integración de menú desplegable 100% CSS en WordPress
« Respuesta #6 en: 03 de Abril de 2010, 11:50 »
Gracias metacortex, en el primer enlace que nos dejas se ayudan de un javascript, que es justamente eso lo que intento evitar. No he podido trastearlo aún, pero quisiera hacerlo con 100% CSS, que me parece mucho más limpio, más usable y menos pesado.

Aun así muy útiles ambos enlaces, gracias de nuevo :)

Desconectado 8bitz

  • *
  • Mensajes: 17
  • Agradecimientos: 1
    • Ver Perfil
    • Da Robotz
Re:Integración de menú desplegable 100% CSS en WordPress
« Respuesta #7 en: 04 de Abril de 2010, 17:17 »
Angeles, te puedo ayudar con esto, pero por la noche, que ahora justo tengo que marchar.

Se trata de listas con html y con el css ocultas y muestras los elementos, esto si lo se hacer. ;)

La segunda parte es un pelin mas complicada, pero nada mas alla de con funcion php de wordpress incrustada en ese elemento <li> del la lista... Eso ya pensare como se hace.

Desconectado LuisFer

  • *
  • Mensajes: 10
  • Agradecimientos: 0
    • Ver Perfil
    • Perú Responsable
Re:Integración de menú desplegable 100% CSS en WordPress
« Respuesta #8 en: 04 de Abril de 2010, 18:33 »
Holas, no se si esto ayude mucho, pero es lo que estoy usando en cuanto al CSS para mi barra de navagación de categorías:
Código: [Seleccionar]
/*---------TOP NAVIGATION for CATEGORIES--------- */
.top-cat-bgr{ background:#eeeeee; border-top:1px solid #888888; border-bottom:1px solid #888888; margin:0 0 10px 0 }
#cat-menu{ height:25px; text-align:left; background:#eeeeee }
  #cat-manu a{ display:block }
  #cat-menu li{ float:left; font-weight:normal; line-height:25px; padding:7px 0; margin:0 }
    #cat-menu li a{ color:#3B352E; display:block; padding:0 11px; text-transform:uppercase; font-size: 11px }
  #cat-manu li a:hover{ text-decoration:underline }
      #cat-menu li a:hover, #cat-menu li.active a{ color:#ffffff; background:#FC7600 }
  #cat-menu li.category-home a{ border-left:0 }
  #cat-menu li.current-cat a,  #cat-menu li.current-cat-parent a{ background:#FC7600; color:#ffffff }

Elo efecto es el que se colocó en el ejemplo inicial, pero con otros colores. En la parte del html, tendría que buscarlo en el archivo header.php.

Saludos,
Luisfer

Desconectado Angeles Portillo

  • Administrador
  • ******
  • Mensajes: 1.305
  • Agradecimientos: 819
    • Ver Perfil
    • Zanguanga
Re:Integración de menú desplegable 100% CSS en WordPress
« Respuesta #9 en: 04 de Abril de 2010, 19:36 »
Huy sí, sí, creo que por ahí va la cosa :-)

Desconectado 8bitz

  • *
  • Mensajes: 17
  • Agradecimientos: 1
    • Ver Perfil
    • Da Robotz
Re:Integración de menú desplegable 100% CSS en WordPress
« Respuesta #10 en: 07 de Abril de 2010, 22:07 »
Buenas, despues de unos dias fuera por trabajo a ver si puedo echar un cable en este tema...

1.- La parte HTML para visualizar como seria la estructura:

Código: [Seleccionar]
<div id="menu">
<ul>
  |   <li>HOME</li>
  |   <li>CATEGORIA 1
  |    |     <ul>
  |    |      |   <li> ENTRADA 1 CATEGORIA 1</li>
  |    |      |   <li> ENTRADA 2 CATEGORIA 1</li>
  |    |     </ul>
  |   </li>
  |   <li>CATEGORIA 2
  |    |    <ul>
  |    |     |     <li> ENTRADA 1 CATEGORIA 2</li>
  |    |     |     <li> ENTRADA 2 CATEGORIA 2</li>
  |    |    </ul>
  |   </li>
</ul>
</div>

2.- La parte CSS que va a mostrar, ocultar, dar formato y poner guapas a las listas y sublistas:

Código: [Seleccionar]
#menu { /* aqui le damos alto y ancho al div menu como de momento tenemos 3 <li> en el principal a 150px cada uno 450px */
height: 20px;
width: 450px;
}

#menu A { /* Estilo para los enlaces en el div menu */
font-family: Arial, Helvetica, sans-serif; /* Tipo de fuente */
font-size: 15px; /* Tamaño de fuente */
color: #000; /* Color de fuente */
display: block; /* Que muestre el enlace como un bloque, asi no solo la parte texto tiene propiedad de enlace */
width: 150px; /* El ancho del bloque */
height: 20px; /* El alto del bloque */
}
#menu ul { /* Estilo para la lista */
margin: 0px; /* por si acaso, que limpie margenes externos */
padding: 0px; /* por si acaso, que limpie margenes internos */
}
#menu li { /* Estilo para cada elemento de la lista */
list-style-type: none; /* Les quitamos la marca de lista */
float: left; /* Cada uno flota a la izquierda del que le precede */
background-color: #FFF; /* Tienen un color de fondo blanco */
text-align: center; /* El texto se alinea centrado */
display: block; /* Se muestran tambien como bloque */
height: 19px; /* Los bloques tienen una altura de 19px (un pixel menos para dejar sitio al borde) */
width: 150px; /* una anchura de 150px */
border: 1px solid #333; /* y un borde de 1 pixel color gris oscuro */
}
#menu LI UL { /* Estilo para la sublista */
position: relative; /* La posicion, relativa a la lista madre */
top: 0px; /* Como la posicion es relativa queda a 0px de la lista madre */
left: -1px; /* y a -1 pixel por el borde */
visibility: hidden; /* Con esta propiedad le decimos que por defecto este oculta */
text-align: left; /* Alineamos a la izquierda el texto */
width: 150px; /* Le volvemos a dar un tamaño */
text-indent: 5px; /* y hacemos que el texto se tabule un poco hacia la derecha para que no quede pegado al borde */
}
#menu LI:hover UL { /* Estilo que se aplica a la sublista cuando nos ponemos encima de la lista madre */
visibility: visible; /* La hacemos visible */
}

Bueno, parece un lio, pero es simple, un ejemplo de lo mas simple que puede haber, cada propiedad esta explicada a continuación entre las marcas /* y */ que delimitan los comentarios en css.

Ahora vamos con el codigo que deberiamos añadir al html para que wordpress introduzca las categorias y entradas:

Código: [Seleccionar]
<div id="menu">
<ul>
   <li><a href="<?php echo get_option('home'); ?>">HOME</a> <!-- Nos lleva al inicio -->
  </li>
    <?php wp_list_pages('title_li='); ?> <!-- pedimos la lista de paginas -->
   <li><a href="#">Categorías</a> <!-- Creamos las categorias -->
<ul> <?php wp_list_categories('orderby=name&title_li='); <!-- Orden en las categorias -->
$this_category get_category($cat);
if (get_category_children($this_category->cat_ID) != "") { 
echo "</ul><ul>"; <!-- Pedimos que nos cree listas para las categorias -->
wp_list_categories('orderby=id&show_count=0&title_li=
&use_desc_for_title=1&child_of='
.$this_category->cat_ID);
echo "</ul>"; <!-- y le pedimos que cierre las listas -->
}
?>

</li> <!-- Cerramos el elemento de lista -->
</ul>   <!-- Cerramos la propia lista -->
</div>   <!-- Cerramos El div que lo contiene todo.... -->

Y en principio listo!

Fijo que no funciona la parte del codigo de wordpress, pero el sistema mas facil seria algo similar a esto, ahora
Como tuve que andar buscando el codigo de aqui y alla ya que no conozco todavia bien las sentencias que usa wordpress, seguro que alguien que sepa de este tema podra corregirlo o incluso cambiarlo totalmente.

Tampoco probe  el tema de la alineación de los menus con el css, esta escrito aqui tal cual y puede que se muevan un poco del lugar que les corresponderia, pero ocultarse y mostrarse con el al pasar el ratón por encima lo hacen seguro.

Se podrian añadir mas sublistas que se oculten y aparezcan todo es jugar con el nivel de <ul> dentro de <li> dentro de <ul> y el parametro :hover :

Código: [Seleccionar]
LI:hover UL UL {
      visibility: hidden
}

Este codigo ocultaria una tercera lista al ser mostrar la segunda.

Asi como:

Código: [Seleccionar]
LI LI:hover UL {
visibility: visible;
}

La haria visible al posicionarse sobre un li de la segunda sublista que contenga otra lista....

Bueno, a ver si entre unos cuantos sacamos ento adelante.

Uff vaya panzada de escribir....

Salud!

Desconectado Angeles Portillo

  • Administrador
  • ******
  • Mensajes: 1.305
  • Agradecimientos: 819
    • Ver Perfil
    • Zanguanga
Re:Integración de menú desplegable 100% CSS en WordPress
« Respuesta #11 en: 08 de Abril de 2010, 01:21 »
Muchísimas gracias por tu aporte, esto sí que no me lo esperaba, estoy anonadada, habrá que probarlo y quizá retocarlo un poco la parte de las subcategorías (o subpáginas) :-D