Eu sei que você pode adicionar uma classe nas opções de menu personalizadas, mas a adiciona ao LI antes do A. Quero aplicar a classe diretamente a esse A específico e não ao LI inteiro.
Então, ao invés da saída ser
<li id="menu-item-51" class="NEWCLASS menu-item menu-item-type-custom menu-item-51"><a href="#">Link</a> </li>
Eu também quero que seja assim.
<li id="menu-item-51" class="menu-item menu-item-type-custom menu-item-51"><a href="#" class="NEWCLASS">Link</a></li>
Alguma ideia?
.class
para.class a
?<li>
elemento que o contém . Se você tem um submenu abaixo desse item em particular, não há problema, você pode abordar isso no CSS para (eu posso dar exemplos, se necessário).Respostas:
você pode usar
nav_menu_css_class
filtroUsando este item $, você pode qualquer condição que desejar. e isso adicionará a classe ao li específico e você poderá estilizar a tag a com base da seguinte forma:
fonte
get_page_template_slug
trabalhar. Alguma ideia?Encontrei uma solução neste site através do uso de um andador personalizado .
Duas etapas: substitua o código padrão wp_nav_menu por um código editado e adicione código ao functions.php do tema.
Primeiro, substitua o wp_nav_code padrão pelo seguinte (o código é copiado do site acima):
Em seguida, adicione o seguinte código ao functions.php. Ao fazer isso, você pode realmente adicionar uma classe aos links do menu:
No final do código, há várias linhas que começam com $ item_output. Em particular, você quer olhar para esta peça:
Porque esta linha determina a saída para o início do link html. Se você mudar para algo assim:
Todos os seus links no menu terão class = "abc" adicionado a eles.
Dito isto, ele não permite uma classe personalizada para cada link (ou pelo menos eu não sei como codificá-lo). Este é um problema para mim.
Para aqueles que perguntam por que você quer fazer isso? Desejo que meus links de menu abram as caixas de luz (caixas de cores, para ser mais específico), e eles exigem classes nos links para fazer isso. Por exemplo:
Existe possivelmente uma maneira de gerar dinamicamente as classes, como "lightbox1" para o primeiro link, "lightbox2" para o segundo link e assim por diante?
fonte
RESOLVIDO !!!! Eu precisava descobrir isso para criar o link do item de menu para HTML embutido em uma caixa de fantasia. Cole o seguinte código na function.php do seu tema:
Então ... na guia Menu do WP Dashboard, crie um link personalizado e adicione-o ao seu menu. No topo, onde diz Opções de tela, verifique se a opção "Link Relationship (XFN)" está marcada. Ele adicionará esse campo ao seu item de menu personalizado. Digite "fancybox" (sem aspas) no campo e salve seu menu.
A função procura a chamada para o menu de navegação, localiza onde quer que você a tenha
rel="fancybox"
e a substitui por arel="fancybox" class="fancybox"
. Você pode substituir o fancybox por qualquer classe que precise adicionar aos itens de menu. Feito e feito!fonte
As respostas atuais parecem não reconhecer que a questão é como adicionar uma classe ao
a
elemento e não aoli
elemento, ou são muito complicadas. Aqui está uma abordagem simples usando onav_menu_link_attributes
filtro que permite segmentar um menu específico com base na lesma e um link de página específico nesse menu com base no ID. Você pode var_dump $ args e $ item para obter mais maneiras de criar sua condição.fonte
if
ele paraif ($args->theme_location == 'footer-menu' )
espreitar o menu pela sua localização, e tudo funciona muito bemEu sei que isso foi respondido há muito tempo, mas, como informações gerais, descobri como adicionar uma classe a cada item de menu individualmente usando a opção "Tela" da página de administração do WordPress para menus personalizados.
fonte
Eu tive que fazer algo semelhante recentemente e descobri de outra maneira. Eu tive que adicionar uma classe semelhante para um plugin do Nivo lightbox. Então, adicionei "nivo" ao atributo rel ("Link Relationship (XFN)") e depois o seguinte no
nav_menu_link_attributes
filtro.fonte
Na área superior da
Appearance -> Menus
página, clique para expandir aScreen Options
, marque a caixa de seleçãoCSS Classes
. Agora, quando você expandir cada item de menu adicionado, verá umCSS Classes (optional)
campo.fonte