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

Submenu

Prezados, Tentando voar um pouco mais alto, estou tentando implementar um submenu no site. Seguindo a documentação, cheguei a seguinte função:

// menu principal
    function menu_navegacao() { 
        register_nav_menu('header-menu', 'main_menu');
    }
    add_action('init', 'menu_navegacao');

    // submenu
    function submenu(){
        add_submenu_page(
            'main_menu',
            'submenu_options',
            'submenu_options',
            'manage_options',
            'submenu_veiculos'
        );
    }
    add_action('menu_navegacao', 'submenu');

a priori não deu nenhum erro, mas ai vem a duvida. Como "chamar" esse submenu no meu arquivo header.php, sendo que ele está assim:

            <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
                <div class="nav navbar-nav">
                    <?php
                        $args = array(
                            'theme_location' => 'header-menu'
                        );
                        wp_nav_menu( $args );
                    ?>
                </div>
            </div>

Mais uma vez, valeu pela força. Abs

6 respostas

Oi Christiano, tudo bem? Essa função adiciona submenus no painel administrativo do WP. Sua ideia é um submenu no menu que está registrado com a função: register_nav_menu ?

Olá Wanderson, tudo certo e você? Então, sim, a idéia a adicionar um submenu nessa função. É possível? Abs

Você não precisa utilizar funções pra isso. No editor visual de menus, basta arrastar um item do menu mais para a direita que ele se tornará um item de submenu.

O que você vai precisar codificar é apenas o css pra exibir o menu corretamente. Olha o primeiro minuto e meio desse vídeo: https://www.youtube.com/watch?v=bxphw24ZvHY

O rapaz arrasta o item de menu pra criar um submenu. É simples assim.

Então Wanderson, o problema é que assim nós perdemos um pouco de controle da manipulação do elemento, como colocar classes, etc. Um modo é adicionar esses atributos pelo JS, mas estou tentando fazer o mais nativo possivel do wordpress. Mais uma vez, valeu a força Abs

solução!

Christiano, entendi sua proposta, já precisei fazer isso uma vez e a solução que encontre foi: criar uma classe filha da classe de menus do wordpress (https://developer.wordpress.org/reference/classes/walker_nav_menu/) sobrescrever o que eu achava necessário pra fazer o que o projeto precisava e depois, na hora de exibir o menu com submenus no tema, usava a função wp_nav_menu normalmente, porém, no $args eu passava um objeto da minha classe pernonalizada no parâmetro 'walker'. (https://developer.wordpress.org/reference/functions/wp_nav_menu/)

Funcionou e espero que dê certo pra você também!

Exatamente isso Wanderson. Vlew demais a força. Abs