Sou o Twitter Bootstrap e preciso adicionar o atributo data-toggle = "modal" à tag a do link do menu. Ao pesquisar na maioria dos resultados de referência, caminhe pelos menus suspensos do Twitter Bootstrap, mas esse menu não possui menus suspensos e eu só preciso adicionar o atributo específico.
Em seguida, encontrei o seguinte: Adicione atributos personalizados aos itens de menu sem o plug-in, o que é muito útil, pois aparece no WordPress 3.6+. Não precisamos mais fazer andadores complexos e longos. Em vez disso, podemos usá-lo: http://codex.wordpress.org/Plugin_API / Filter_Reference / nav_menu_link_attributes
No entanto, a partir dessa execução, a referência da API é bastante simples e não oferece exemplos e, como é tão nova, existem muito poucas referências a ela no Google.
Eu tentei isso primeiro:
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;
}
e isso funciona, no entanto, conforme o esperado, adiciona o atributo a todas as tags a no menu. Então, eu estou tentando descobrir como direcionar um item de menu com # menu-item-7857 ou algo assim.
Alguém sabe onde encontrar um exemplo de segmentação para um item de menu ou é capaz de determinar como basear-se nas informações contidas na referência de API vinculada acima?
Para observar, encontrei o exemplo a seguir, mas ele segmenta apenas itens que têm filhos, o que não ajuda, mas pode estar na direção certa:
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);
ATUALIZAÇÃO - A única resposta abaixo parece que está ligada a alguma coisa, mas não foi possível determinar como encontrar o número para direcionar meu link específico e onde / como adicionar essa condicional em um exemplo de trabalho. Adicionou um comentário, mas não recebeu resposta. Desde 18 dias, pensei em ver se uma recompensa ajudaria.
Quando olho para o código do link que quero segmentar:
<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>
Eu vejo o número 7858, então pensando que talvez esse seja o número que eu deveria ter como alvo.
Mas quando tento, por exemplo:
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;
}
}
No entanto, adicionando que a declaração if, sugerida por um comentarista, recebo o seguinte erro:
Fatal error: Cannot use object of type WP_Post as array
Estou assumindo que mais código é necessário, mas perdido. Como um lembrete sem a instrução if, ele funciona, no entanto, tem como alvo todos os links, e não o link que eu quero segmentar.