Suporte » Temas » Problema com registro de menu

  • Resolvido Ryendel Rocha

    (@ryendel)


    Boa noite, estou tentando criar uma página template e nela terá um menu diferente do restante do site, ela será uma Landing Page com menu flutuante enquanto o restante do site será um sistema de FAQ onde os clientes deverão pagar para ter acesso.
    Mas o problema é que não estou conseguindo colocar o menu nessa página inicial.
    Criei o menu na functions.php:

    	register_nav_menus( array(
    		'primary-nav' => 'Primary Navigation', 'Quatre Creative' ,
    		'menu-inicial' => 'Menu inicial', 'Quatre Creative' ,
    	));

    E chamei ele na header-home.php:

    <?php wp_nav_menu( array( 'theme_location' => 'menu-inicial' ) ); ?>

    Até ai tudo bem, mas na hora que aparece no site aparece da seguinte forma:

    https://s2.postimg.org/xmw6pw6op/errado.png

    E este não é o menu que está assinalado como menu inicial, já o menu primary-nav está funcionando perfeitamente.

    Alguém pode me ajudar?

    • Este tópico foi modificado 6 anos, 9 meses atrás por Ryendel Rocha.
    • Este tópico foi modificado 6 anos, 9 meses atrás por Mário Valney.
Visualizando 4 respostas - 1 até 4 (de um total de 4)
  • Moderador Mário Valney

    (@mariovalney)

    WordPress Cleric of Fire

    Olá, tudo bem?

    Antes de mais nada precisamos corrigir o modo que está registrando. No código que você mandou, estão sendo registrados os menus ‘primary-nav’ e ‘menu-inicial’, afinal são chaves da array e mais dois elementos ‘Quatre Creative’.

    Não tenho certeza se essa array inválida está registrando menus em posições erradas já que não especifica a chave ou se são ignorados, mas de qualquer forma é melhor corrigirmos:

    register_nav_menus( array(
        'primary-nav'   => 'Primary Navigation',
        'menu-inicial'  => 'Menu inicial',
    ) );

    Observação: não precisa registrar menus que já estão registrados, OK? Ou seja, se o primary-nav é um menu registrado pelo Tema, basta incluir o menu-inicialaí.

    Veja se isso resolve. Se não resolver verifica se existe realmente um menu salvo na administração para essa posição, pois como não estamos passando valor para fallback_cb em wp_nav_menu, ele assume wp_page_menu, caso o menu não exista, e chama todas as páginas como links.

    Abraços

    Criador do tópico Ryendel Rocha

    (@ryendel)

    Boa tarde Mario. Consegui resolver aqui, muito obrigado. Você está me salvando esses dias. hahah Muito obrigado cara!

    Edit:
    Problema 1:

    Acabei encontrando outros problemas com o menu, primeiro, como quero que um menu apareça apenas em uma página criei um template para aquela página e usei chamar o menu se se for a página teste, mas agora quero migrar isso para a página home, então usei

    if ( is_home() ) :
    	get_header( 'home' );
    else:
        get_header();
    endif;

    Só que assim ele não chama. O único jeito que encontrei que funcionou foi:

    	if ( is_page('inicio') ) :
    	get_header( 'home' );
    else:
        get_header();
    endif;

    Assim funcionou, mas pode ser algo que esteja errado já que ela está determinada como página inicial do site e mesmo assim não funciona?

    Problema 2:

    Eu queria fazer que o menu da página inicial fosse flutuante, já que que seria uma landing page. Então copiei o css da header e coloquei site-header e site-header1 já que iria usar um plugin para fazer isso automaticamente, só que quando fiz isso a fonte do menu que era branca ficou azul, apenas no meu site-header1. Segue o código na style.css

    #site-header1 {
      background: #763130;
      color: #fff;
      padding: 15px 0;
      position: relative; }
      @media screen and (min-width: 321px) {
        #site-header1 {
          padding: 15px 0; } }
      #site-header1 .ht-container {
        display: table;
        width: 100%; }
      #site-header1 #logo {
        float: left; }
        @media screen and (max-width: 321px) {
          #site-header1 #logo {
            line-height: 35px;
            height: 35px; } }
        #site-header1 #logo h1 {
          display: none; }
        #site-header1 #logo img {
          max-width: 100%;
          height: auto; }
          @media screen and (max-width: 321px) {
            #site-header1 #logo img {
              max-height: 35px;
              vertical-align: middle; } }	

    Não consigo encontrar onde está errado. E tem outro jeito de fazer o menu flutuante que eu consiga alterar o padding para que o menu fique mais fino quando estiver flutuante?

    Desde já obrigado pela ajuda!

    • Esta resposta foi modificada 6 anos, 9 meses atrás por Ryendel Rocha. Razão: Encontrei problemas posteriormente
    Moderador Mário Valney

    (@mariovalney)

    WordPress Cleric of Fire

    Bem. Sugiro criar um tópico novo para o problema 2, principalmente porque ele é de front-end.

    Sobre o problema 1, a questão do is_home() é que ele nem sempre vai ser a home do site, mas sim a home do blog. Dá uma olhada na documentação:

    https://developer.wordpress.org/reference/functions/is_home/#usage

    Abraços

    • Esta resposta foi modificada 6 anos, 9 meses atrás por Mário Valney.
    Criador do tópico Ryendel Rocha

    (@ryendel)

    Criei o tópico novo.

    Entendi, vou dar uma olhada aqui. De novo, muito obrigado cara. haha

Visualizando 4 respostas - 1 até 4 (de um total de 4)
  • O tópico ‘Problema com registro de menu’ está fechado para novas respostas.