Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Menu mais personalizado

Queria saber como faço para utilizar um menu personalizado que criei em HTML/CSS. Na verdade, ir direto para o loop.

Atualmente uso essa função escrita no meu header.php :

<?php
    $args = array(
            'theme_location' => 'header-menu'
    );
    wp_nav_menu( $args );
?>

Mas gostaria de saber se posso escrever de outra forma, pois meu menu tem uma < ul > com classe personalizada e inclusive meus < li > também possuem classe personalizada.

Agradeço desde já.

3 respostas

Alguém pode me ajudar?

Olá, Fabrizio.

Na documentação do WordPress eles falam de alguns parâmetros que podem ser colocados como argumento para especificar classe do menu e dos containers.

https://developer.wordpress.org/reference/functions/wp_nav_menu/

Os parâmetros que podem te ajudar a resolver são o "menu_class" e "container_class". Também tem parâmetros par aos ids.

Se for alguma coisa simples você vai conseguir resolver só usando esses parâmetros. Se for algo mais complexo, o WordPress permite que você construa a sua própria classe que gera o menu. Essas classes são chamadas de Walkers.

https://codex.wordpress.org/Class_Reference/Walker

Isso já é um pouco avançado no WordPress e talvez seja mais fácil adequar o menu que você já construiu à estrutura que o WordPress já utiliza.

Espero ter ajudado.

solução!

Entendi. Até serviu, mas ficou faltando uma coisa, pois dentro do < li > tem um link que também tem uma classe. Vou utilizar JS pra adicionar, foi a única saída que encontrei.

O Código ficou o seguinte:

<?php
    $args = array(
        'theme_location' => 'header-menu',
        'container' => false,
        'menu_class' => 'navbar-nav',
        'container_class' => 'nav-item'
    );
    wp_nav_menu( $args );
?>

Estou utilizando o menu do Bootstrap 4, por isso precisava adicionar essas classes. Você acha que é uma má prática eu finalizar usando JS pra adicionar uma classe aos links?