Soy Twitter Bootstrap y necesito agregar el atributo data-toggle = "modal" a la etiqueta del enlace del menú. Sin embargo, después de buscar en la mayoría de los resultados de referencia, recorro los menús desplegables de Twitter Bootstrap, sin embargo, este menú no tiene menús desplegables y solo necesito agregar el atributo particular.
Luego encontré esto: agregue atributos personalizados a los elementos de menú sin complemento, lo cual es muy útil, ya que aparece en WordPress 3.6+ ya no tenemos que hacer caminatas largas y complejas y en su lugar podemos usar esto: http://codex.wordpress.org/Plugin_API / Filter_Reference / nav_menu_link_attributes
Sin embargo, a partir de esta ejecución, la referencia de la API es bastante simple y no ofrece ejemplos, y dado que es tan nueva, hay muy pocas referencias a ella en Google.
Intenté 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 eso funciona, sin embargo, como se esperaba, agrega el atributo a todas las etiquetas a en el menú. Así que estoy tratando de descubrir cómo apuntar a un elemento de menú con # menu-item-7857 ao 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?
Para tener en cuenta, encontré el siguiente ejemplo, pero solo apunta a 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 parece que está en algo, pero no fue capaz de determinar cómo encontrar realmente el número para apuntar a mi enlace específico y dónde / cómo agregar ese condicional en un ejemplo de trabajo. Agregué un comentario pero no recibí respuesta. Desde hace unos 18 días pensé que vería si una recompensa ayudaría.
Cuando miro el código del enlace al que me quiero dirigir:
<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, así que tal vez 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 sugirió que obtengo el siguiente error:
Fatal error: Cannot use object of type WP_Post as array
Supongo que se requiere más código, pero perdido. Como recordatorio sin la declaración if, funciona, sin embargo, se dirige a todos los enlaces en lugar del enlace al que quiero apuntar.