Foros del Web » Creando para Internet » Sistemas de gestión de contenidos » WordPress »

Añadir clases (lvl1, lvl2, etc) a los menús

Estas en el tema de Añadir clases (lvl1, lvl2, etc) a los menús en el foro de WordPress en Foros del Web. Buenas. Estoy desarrollando un theme para Wordpress, y a la hora de integrar el menú, como sabrán, Wordpress le asigna sus propias clases. A mi ...
  #1 (permalink)  
Antiguo 25/07/2012, 08:34
Avatar de Lobito14  
Fecha de Ingreso: abril-2010
Mensajes: 222
Antigüedad: 14 años
Puntos: 17
Añadir clases (lvl1, lvl2, etc) a los menús

Buenas.

Estoy desarrollando un theme para Wordpress, y a la hora de integrar el menú, como sabrán, Wordpress le asigna sus propias clases.

A mi me gustaría tener una estructura como la siguiente, y a parte de las clases que pone Wordpress, añadir estas:

Código HTML:
Ver original
  1. <ul class="lvl0">
  2.   <li class="lvl0">
  3.     <a class ="lvl0" href="#"></a>
  4.   </li>
  5.  
  6.   <li class="lvl0">
  7.     <a class ="lvl0" href="#"></a>
  8.     <ul class="lvl1">
  9.       <li class="lvl1">
  10.         <a class="lvl1" href="#"></a>
  11.       </li>
  12.  
  13.       <li class="lvl1">
  14.         <a class="lvl1" href="#"></a>
  15.       </li>
  16.     </ul>
  17.   </li>
  18.  
  19.   <li class="lvl0">
  20.     <a class ="lvl0" href="#"></a>
  21.   </li>
  22. </ul>

Algo así es lo que me gustaría tener al final.

He estado buscando y he visto que para ello tendría que crear un "walker", pero la verdad es que he estado leyendo bastante documentación y no me llega a quedar claro como realizarlo.

Si alguien puede ayudarme estaría muy agradecido!!

Un saludo.
  #2 (permalink)  
Antiguo 25/07/2012, 12:07
 
Fecha de Ingreso: diciembre-2004
Ubicación: Madrid
Mensajes: 550
Antigüedad: 19 años, 4 meses
Puntos: 28
Respuesta: Añadir clases (lvl1, lvl2, etc) a los menús

no sé si lo que quieres es algo como lo que te ofrece este plugin...

http://mealldubh.com/software/fold_page_menus/
  #3 (permalink)  
Antiguo 25/07/2012, 12:47
Avatar de Lobito14  
Fecha de Ingreso: abril-2010
Mensajes: 222
Antigüedad: 14 años
Puntos: 17
Respuesta: Añadir clases (lvl1, lvl2, etc) a los menús

Gracias por contestar Ember, pero me temo que no.

Lo que quiero es poder agregar clases propias a los menús que se generan con wp_nav_menu(); y como digo, según he leído, hay que hacerlo con un "walker" propio.

A ver si alguien puede echarme un mano.

Gracias!
  #4 (permalink)  
Antiguo 25/07/2012, 18:32
Avatar de Ricardfs  
Fecha de Ingreso: mayo-2012
Ubicación: Girona
Mensajes: 85
Antigüedad: 12 años
Puntos: 31
Respuesta: Añadir clases (lvl1, lvl2, etc) a los menús

¿y por que no le das estilos a las clases que pone Wordpress? ¿cual es el problema en utilizar unas clases u otras?
__________________
Blog Personal

Cada vez que me das Karma positivo Google salva un gatito
  #5 (permalink)  
Antiguo 26/07/2012, 04:47
Avatar de Lobito14  
Fecha de Ingreso: abril-2010
Mensajes: 222
Antigüedad: 14 años
Puntos: 17
Respuesta: Añadir clases (lvl1, lvl2, etc) a los menús

Cita:
Iniciado por Ricardfs Ver Mensaje
¿y por que no le das estilos a las clases que pone Wordpress? ¿cual es el problema en utilizar unas clases u otras?
Si le pone una clase a un <li> de nivel superior y su <a> que lleva dentro y la misma clase a un <li> de segundo nivel y su <a>... ahí hay conflictos de clase y la hoja de estilos se vuelve loca.

Gracias, un saludo.
  #6 (permalink)  
Antiguo 26/07/2012, 05:18
Avatar de Nekko
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Buenos Aires
Mensajes: 3.141
Antigüedad: 16 años, 1 mes
Puntos: 656
Respuesta: Añadir clases (lvl1, lvl2, etc) a los menús

Hola Lobito14!

Me parece que es mucho mas práctico en tu caso pedir ayuda a los conocedores de jQuery... es mucho mas fácil y con pocas líneas de código obtenés lo que buscás. Lo que no sé bien es como obtener exactamente la estructura que estás colocando acá, pero te pongo un ejemplo.

Código HTML:
Ver original
  1. <ul id="miLista">
  2. <li class="lvl1">...</li>
  3. <li class="lvl2">...</li>
  4. <li class="lvl3">...</li>
  5. <li class="lvl4">...</li>
  6. </ul>
  7.  
  8. <script type="text/javascript">
  9. $("#miLista li").each(function(i) {
  10.      this.addClass("lvl"+(i+1));
  11.     });

Si optás por jQuery, por favor tené presente que lo que postulé es muy mejorable!
__________________
Taller para crear themes wordpress desde cero | Presupuestos para trabajos particulares vía MP
  #7 (permalink)  
Antiguo 26/07/2012, 06:23
Avatar de Lobito14  
Fecha de Ingreso: abril-2010
Mensajes: 222
Antigüedad: 14 años
Puntos: 17
Respuesta: Añadir clases (lvl1, lvl2, etc) a los menús

Gracias por la ayuda Nekko.

jQuery no es mala opción, realmente habría que comprobar también los <li> padres, para a los hijos ponerles un lvl(lvl del padre+1)... algo así. Se podría sacar.

La cosa es que con lo de los "walker" de Wordpress se supone que esto se puede hacer sin demasiado problema, por eso venia a preguntar, por si era un tema que controlase alguien y pudiese guiarme un poco, pero parece que no es algo tan sencillo o conocido.

Gracias :)

Etiquetas: clases, class, walker
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:43.