Problema com registro de menu
-
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 7 anos, 3 meses atrás por Ryendel Rocha.
- Este tópico foi modificado 7 anos, 3 meses atrás por Mário Valney.
-
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 omenu-inicial
aí.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
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 7 anos, 3 meses atrás por Ryendel Rocha. Razão: Encontrei problemas posteriormente
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 7 anos, 3 meses atrás por Mário Valney.
Criei o tópico novo.
Entendi, vou dar uma olhada aqui. De novo, muito obrigado cara. haha
- O tópico ‘Problema com registro de menu’ está fechado para novas respostas.