Soy Twitter Bootstrap y necesito agregar el atributo data-toggle="modal" a la etiqueta del enlace del menú. Al buscar en la mayoría de los resultados, haga referencia a los menús desplegables de Twitter Bootstrap, sin embargo, este menú no tiene menús desplegables y solo necesito agregar el atributo en particular.
A continuación, encontré esto: Añadir atributos personalizados a los elementos del menú sin el complemento , lo cual es muy útil, ya que aparece en WordPress 3.6+, ya no tenemos que hacer caminatas largas y complejas, sino que podemos usar esto: enlace
Sin embargo, a partir de este momento, la referencia de la API es bastante simple y no ofrece ejemplos, y como es tan nueva, hay muy pocas referencias a ella en Google.
Probé esto primero:
add_filter( 'nav_menu_link_attributes', 'mywp_contact_menu_atts', 10, 3 );
function pb_contact_menu_atts( $atts, $item, $args )
{
// inspect $item, then …
$atts['data-toggle'] = 'modal';
return $atts;
}
y, sin embargo, funciona como se espera agrega el atributo a todas las etiquetas en el menú. Así que estoy tratando de averiguar cómo apuntar a un elemento del menú con # menu-item-7857 o similar.
¿Alguien sabe dónde encontrar un ejemplo de orientación a un elemento del menú o puede determinar cómo basarse en la información que se encuentra en la referencia de la API vinculada anteriormente?
A tener en cuenta, encontré el siguiente ejemplo, pero solo se enfoca en elementos que tienen hijos, lo que no ayuda pero puede estar en la dirección correcta:
add_filter('nav_menu_link_attributes', function($atts, $item, $args) {
if ( $args->has_children )
{
$atts['data-toggle'] = 'dropdown';
$atts['class'] = 'dropdown-toggle';
}
return $atts;
}, 10, 3);
ACTUALIZACIÓN: la única respuesta a continuación suena como si se tratara de algo, pero no pudo determinar cómo encontrar el número para dirigir mi enlace específico y dónde / cómo agregar ese condicional en un ejemplo funcional. Agregué un comentario pero no recibí respuesta. Desde hace unos 18 días pensé en ver si una recompensa ayudaría.
Cuando miro el código del enlace que quiero orientar:
<li id="menu-item-7858" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-7858"><a href="#" data-toggle="modal">Chat</a></li>
Veo el número 7858, por lo que creo que quizás ese sea el número al que debería apuntar.
Pero cuando lo intento por ejemplo:
add_filter( 'nav_menu_link_attributes', 'my_chat_menu_atts', 10, 3 );
function my_chat_menu_atts( $atts, $item, $args ) {
if ( 7857 == $item['ID'] ) {
// inspect $item, then …
$atts['onclick'] = 'SnapEngage.startLink();';
return $atts;
}
}
Sin embargo, agregando que si la declaración del comentarista me sugirió, recibo el siguiente error:
Fatal error: Cannot use object of type WP_Post as array
Supongo que se requiere más código, pero en caso de pérdida. Como recordatorio, sin la instrucción if, funciona, sin embargo, se dirige a todos los enlaces en lugar de al enlace que quiero orientar.