He visto algunas preguntas similares aquí en stackoverflow, pero la mía es un poco diferente.
Necesito poder agregar atributos de datos personalizados al menú de wordpress. El problema que tengo es que todas las soluciones que encontré, como las siguientes, por ejemplo:
add_filter( 'nav_menu_link_attributes', 'my_nav_menu_attribs', 10, 3 );
function my_nav_menu_attribs( $atts, $item, $args )
{
// The ID of the target menu item
$menu_target = 365;
// inspect $item
if ($item->ID == $menu_target) {
$atts['data-reveal-id'] = 'myModal';
}
return $atts;
}
le permite agregar el mismo atributo a todos los elementos del menú. Lo que necesito es en realidad una forma de agregar el mismo atributo de datos, pero con diferentes valores en cada elemento de la lista.
esto es más o menos lo que necesito lograr:
<ul id="myMenu">
<li data-menuanchor="firstPage" class="active"><a href="#firstPage">First section</a></li>
<li data-menuanchor="secondPage"><a href="#secondPage">Second section</a></li>
<li data-menuanchor="thirdPage"><a href="#thirdPage">Third section</a></li>
<li data-menuanchor="fourthPage"><a href="#fourthPage">Fourth section</a></li>
</ul>
porque necesito usar este complemento aquí: https://github.com/alvarotrigo/fullPage.js#fullpagejs
¿algún consejo?
Gracias
Supongo que la solución sería ampliar los elementos de navegación. Hice esto antes para agregar íconos a los elementos del menú.
Eche un vistazo aquí: en lugar de un subtítulo, no puede nombrar el campo “objetivo de anclaje” (o cualquier otra cosa) y llamarlo en su menú…
http://www.wpexplorer.com/agregando-atributos-personalizados-a-los-menús-de-wordpress/
Si necesita más sugerencias, debe buscar en Google “wordpress + menú + campo personalizado”.
Espero que esto te ayude. Mis mejores deseos
-
Intenté descargar el complemento final solo para verificar cómo funciona el estilo de los subtítulos y cómo funciona el complemento en general, pero no creo que funcione. No tengo ningún “subtítulo” en absoluto. ¿Estás seguro de que esto sigue siendo válido con las actualizaciones de wordpress? ya que el complemento parece tener al menos 2 años de antigüedad
– Nick
9 de febrero de 2016 a las 9:17
-
Hola Nick, si vas a Diseño > Menús (tal vez sea otro nombre en tu idioma o en inglés, solo tengo una versión en alemán abierta, pero básicamente el sitio donde puedes editar tus menús) puedes hacer clic en un panel en la parte superior esquina derecha (en la versión alemana se llama “Ansicht anpassen”). Supongo que no has seleccionado la nueva opción, ¿verdad? También puede agregar campos como destino del enlace (fe en blanco), css, XFN, ….
– Thomas B
9 de febrero de 2016 a las 9:44
-
sí, lo sé, en realidad agregué un subtítulo de la manera correcta, simplemente no se muestra en absoluto… Y esa es la parte que no puedo entender por qué…
– Nick
9 de febrero de 2016 a las 9:55
Al final, logré resolver esto usando javascript.
Esto es lo que hice:
(function() {
var arrayList, key, val;
arrayList = ['first', 'second', 'third', 'fourth'];
for (key in arrayList) {if (window.CP.shouldStopExecution(1)){break;}
val = arrayList[key];
console.log("key is " + key + " and val is " + val);
$('li').each(function(index) {
if (parseInt(index) === parseInt(key)) {
return $(this).attr('data-anchor', val);
}
});
}
window.CP.exitedLoop(1);
}).call(this);
- Crea una matriz con los datos que necesitas
- Bucle Foreach para iterar a través de la matriz
- Dentro de ese ciclo, recorre los elementos del menú
- Si el índice del menú es el mismo que el índice de la matriz, agregue el valor de la matriz como un atributo.
Aquí hay un ejemplo de codepen también: http://codepen.io/NickHG/pen/GmKqqE
Tomas B
Ok, muy mal, lo siento. Publicaría el código que he escrito para mis íconos, pero el código es como 400 líneas con el andador y esas cosas. Pero como parece que estás usando base, deberías dirigirte aquí -> https://www.smashingmagazine.com/2015/10/customize-tree-like-data-structures-wordpress-walker-class/
Incluso si no sabe acerca de php o wordpress hooks, este tutorial explicará absolutamente todos los pasos necesarios para codificarlo a mano. Funciona, lo acabo de probar con mi sitio copiándolo/pegándolo.
Si se desplaza hacia abajo, verá capturas de pantalla: agregaron un campo de ícono (casi como lo hice yo) cómo lo hicieron y cómo lo usan. Después de ver este truco, sinceramente, me arrepiento de haberlo hecho yo solo. Fue doloroso, este truco funciona a las mil maravillas….
-
Para ser justos, estoy bastante familiarizado con wordpress, solo quería saber si había una manera de hacerlo sin tener que escribir un complemento completo. Voy a ver el enlace que sugirió. Gracias por ahora, te dejaré saber
– Nick
9 de febrero de 2016 a las 10:09
-
Ok, las costuras son muy, muy detalladas. Gracias de nuevo por su ayuda y apoyo.
– Nick
9 de febrero de 2016 a las 10:13
Estoy tratando de hacer exactamente lo mismo. ¿Encontraste una solución?
– Nemus
10 de abril de 2017 a las 22:25
Sí. Al final logré resolver esto usando javascript. Estoy escribiendo una respuesta ahora y la publicaré aquí para que la veas.
– Nick
11 de abril de 2017 a las 8:02