Em alguns casos é necessário a inserção de um id, class ou alguma marcação no elemento dentro de um menu no WordPress, na tag “a”.
Como no caso abaixo:
1 2 3 4 5 | <ul id="menu-main-menu" class="default-wp-nav-menu visible-lg" <li id="menu-item-1" class="menu-item1"> <a ref="#home">Home</a> </li> <ul> |
O menu acima é gerado pela função wp_nav_menu(), onde é possível a passagem de vários parâmetros como inserção de classes nos elementos ul e li, como também separação por pipes “|” das opções e uma série de outras opções, vide documentação.
E imagine que neste caso seja necessário inserir a classe “minhaclasse” no elemento “a”, para que fique desta maneira:
1 2 3 4 5 | <ul id="menu-main-menu" class="default-wp-nav-menu visible-lg" <li id="menu-item-1" class="menu-item1"> <a class="minhaclasse" ref="#home">Home</a> </li> <ul> |
Para este caso, é muito simples, basta adicionar o filtro, ou seja, a função customizada abaixo, que irá alterar, da maneira correta (sem gambs, haha) o funcionamento do menu WordPress para que atenda esta necessidade.
Insira a função abaixo no arquivo functions.php do seu tema!
E o que ela faz?
Muito simples, a função utiliza o método preg_replace, que subsititui o primeiro argumento, pelo segundo, ou seja, substitui o início da tag “a”, por o argumento com o elemento a e o class desejado, veja abaixo:
1 2 3 4 5 | function adicionar_nav_class($output) { $output= preg_replace('/<a/', '<a class="minhaclasse"', $output, -1); return $output; } add_filter('wp_nav_menu', 'adicionar_nav_class'); |
Neste caso, basta adaptar a função acima as suas necessidades de inserção de class, id, name ou algum elemento que deseje.
Simples, espero que possa lhe ajudar!
Qualquer coisa basta entrar em contato por email!
Grande abraço a todos e feliz páscoa!!