Skip to content

Tudo para WordPress, desenvolvimento web — e não só

🔗 Como adicionar um link para a página inicial no menu do WordPress

🔗 Como adicionar um link para a página inicial no menu do WordPress

Um menu de navegação sem uma ligação para a página inicial é como uma porta de entrada sem maçaneta. Um visitante aterra numa página interna através de uma pesquisa, lê o conteúdo... e não faz ideia de onde clicar para chegar à página inicial. O logótipo no cabeçalho nem sempre ajuda; alguns utilizadores procuram instintivamente um item «Home» no próprio menu.

Antes da versão 3.0, o WordPress não tinha essa opção no editor de menus padrão, pelo que era necessário editar o código ou adicionar uma ligação personalizada manualmente. Agora tudo é mais simples: alguns cliques e a ligação para a página inicial fica no lugar. E se for um programador ou estiver a personalizar um tema, existe o filtro wp_nav_menu_items que resolve a tarefa com uma única função.

Abaixo encontra ambos os métodos: um visual para utilizadores comuns e um programático para quem trabalha com código. Além disso, abordaremos quando a ligação precisa de ser atualizada e o que fazer se desaparecer subitamente.

💡 Visão geral rápida:

  • Adicione uma ligação para a página inicial ao menu do WordPress através do painel de administração em menos de um minuto, sem plugins.
  • Adicione a ligação programaticamente usando o filtro wp_nav_menu_items no ficheiro functions.php do tema.
  • Verifique e atualize o URL após mudar de domínio ou mudar para HTTPS.

Método 1: através do painel de administração do WordPress

Este método funciona com o WordPress 3.0 e posteriores, ou seja, em qualquer site moderno. Não são necessários plugins ou edições de código.

Inicie sessão no painel de administração e navegue até Aparência → Menus. À esquerda, verá blocos: «Páginas», «Artigos», «Ligações personalizadas» e outros, dependendo dos plugins instalados e dos tipos de conteúdo.

No bloco Páginas, clique no separador Todas (ou «Ver Todas» em versões mais antigas). A primeira entrada é uma página chamada «Home». Marque a sua caixa de seleção e clique em Adicionar ao Menu.

Bloco de páginas no editor de menus do WordPress com o item Início

Uma vez adicionado, o item aparecerá na estrutura do menu à direita. Arraste-o para a posição desejada; geralmente é colocado em primeiro ou em último lugar. Guarde o menu clicando em Guardar Menu e a ligação para a página inicial ficará ativa no seu site.

Por predefinição, o WordPress usa o URL direto da página inicial para este item (por exemplo, https://vash-sait.ru/). Isto é importante lembrar: se mais tarde mover o site para um domínio diferente ou mudar de HTTP para HTTPS, a ligação manterá o endereço antigo. Terá de abrir o editor de menus e corrigir o URL manualmente, ou eliminar o item e adicioná-lo novamente (o WordPress inserirá o endereço atual automaticamente).

Método 2: adição programática através de um filtro

Se estiver a desenvolver um tema personalizado ou quiser que a ligação para a página inicial seja adicionada automaticamente quando o tema for ativado, use o filtro wp_nav_menu_items. Ele interceta o HTML dos itens do menu antes da saída e permite-lhe inserir o seu próprio elemento.

Coloque o código no ficheiro functions.php do tema ativo (ou de um tema filho para não perder as alterações nas atualizações). Uma alternativa é o plugin Code Snippets: cria um snippet, cola o código e ativa-o; as alterações ficam então independentes do tema.

Página do plugin Code Snippets no WordPress
1/**
2 * Adds a "Home" link to the main WordPress menu.
3 *
4 * @param string $items HTML markup of menu items.
5 * @param object $args wp_nav_menu() arguments.
6 * @return string
7 */
8function sdstudio_add_menu_home_link( $items, $args ) {
9 // Target menu location — replace 'main' with your own value
10 if ( 'main' !== $args->theme_location ) {
11 return $items;
12 }
13
14 $home_link = sprintf(
15 '<li class="menu-item"><a href="%s">%s</a></li>',
16 esc_url( home_url( '/' ) ),
17 esc_html__( 'Home', 'textdomain' )
18 );
19
20 // The link is added first — put $items . $home_link if you need it last
21 $items = $home_link . $items;
22
23 return $items;
24}
25add_filter( 'wp_nav_menu_items', 'sdstudio_add_menu_home_link', 10, 2 );

O parâmetro chave é 'main' na condição if. Este é o slug da área do menu (localização do tema) registada pela função register_nav_menu() no tema. Pode encontrar o seu slug no functions.php do tema: procure a chamada a register_nav_menu() ou register_nav_menus() e verifique o primeiro argumento. Na maioria das vezes é primary ou main.

A função é segura: esc_url() escapa o URL e esc_html__() escapa o texto da ligação, ao mesmo tempo que suporta tradução. Se usar um tema filho, substitua 'textdomain' pelo domínio de texto do seu tema.

Depois de inserir o código, atualize o site e a ligação para a página inicial aparecerá no menu automaticamente. Não precisa de a remover manualmente: basta comentar ou apagar a chamada add_filter() e tudo voltará ao estado original.

Situações em que a ligação precisa de ser atualizada

Uma ligação para a página inicial adicionada através do painel de administração armazena um URL fixo, aquele que estava nas definições do site no momento da adição. Três cenários comuns em que ela se quebra:

  • Mudança de HTTP para HTTPS. O item do menu continua a apontar para http://..., os navegadores podem exibir um aviso de conteúdo misto ou o redireccionamento pode falhar. Solução: abra o editor de menus, elimine o item «Home» antigo e adicione-o novamente; o WordPress inserirá o URL https:// atual.

  • Mudança de domínio. Ao mover um site de um ambiente de desenvolvimento para produção (staging.site.rusite.ru) ou migrar para um domínio completamente novo. O item do menu mantém o URL antigo. Solução: a mesma de cima (eliminar e adicionar novamente).

  • Mudança de um subdiretório para a raiz. Se o site se mudar de site.ru/blog/ para site.ru/, todas as ligações fixas se quebram. Após a migração, percorra TODOS os itens do menu, não apenas a ligação para a página inicial.

O método programático (via wp_nav_menu_items) não tem estes problemas: home_url('/') devolve sempre o endereço atual da página inicial a partir das definições do WordPress.

A propósito, se trabalha frequentemente com menus, verifique as definições de navegação em Aparência → Personalizar, onde pode gerir menus em tempo real com uma pré-visualização ao vivo. Para edições avançadas (adicionar ícones aos itens, mega-menus), existem ferramentas dedicadas, mas isso é tema para outro artigo.

Vídeo: adicionar um botão Home em 2 minutos

Se prefere ver a ler, aqui está um pequeno vídeo em inglês com uma demonstração passo a passo do ecrã:

⁉️🤔 Perguntas frequentes

Posso adicionar uma ligação para a página inicial sem plugins ou código?

Sim, através do editor de menus padrão do WordPress: Aparência → Menus → bloco Páginas → marque «Home» → Adicionar ao Menu. Esta é uma funcionalidade principal disponível desde a versão 3.0.

Porque é que a ligação para a página inicial desapareceu do menu depois de mudar de tema?

Os menus no WordPress estão ligados a áreas de menu (localizações do tema) registadas pelo tema. Quando muda de tema, as áreas antigas desaparecem e as novas podem ter nomes diferentes. O seu menu não foi a lado nenhum; simplesmente ficou «não atribuído». Vá a Aparência → Menus → separador Gerir Localizações e atribua o menu existente a uma área do novo tema. Todos os itens, incluindo a ligação para a página inicial, voltarão.

O menu já tem um item «Home», mas ele leva a uma página específica em vez da raiz do site. Como corrijo isto?

Muito provavelmente, foi adicionada ao menu uma página específica com o título «Home» em vez do tipo especial «Página inicial». Remova esse item do menu e, em seguida, no bloco Páginas, encontre a entrada com o rótulo «Página inicial» (o WordPress marca-a de forma distinta) e adicione-a. Se não houver esse rótulo, use «Ligações personalizadas»: no campo URL introduza / e no campo «Texto da ligação» escreva «Home».

Como adiciono a ligação para a página inicial em último lugar no menu, em vez de em primeiro?

No método programático, troque a ordem de concatenação: em vez de $home_link . $items escreva $items . $home_link. No editor visual, basta arrastar o item «Home» para o final da lista e guardar o menu.

É necessário usar esc_url() e home_url() no código?

Sim, esta é uma boa prática do WordPress. home_url('/') insere dinamicamente o endereço atual do site a partir das definições, pelo que não precisará de editar o código ao mudar de domínio. esc_url() escapa caracteres especiais e protege contra ataques XSS. Saltar o escape em código de produção é arriscado.

O método de código funciona numa instalação multisite do WordPress?

Sim, home_url( '/' ) em multisite devolve o URL do site específico dentro da rede (aquele especificado nas definições desse subsite). Cada site na rede terá a sua própria ligação para a página inicial. Se precisar de um comportamento diferente para sites diferentes, envolva a chamada add_filter() numa condição que verifique o ID do blogue através de get_current_blog_id().

O que fazer se a ligação para a página inicial não aparecer?

Primeiro, verifique o óbvio: guardou mesmo o menu depois de adicionar o item? O botão «Guardar Menu» está no final da página; sem clicar nele, as alterações não são aplicadas. Se o menu estiver guardado mas o item estiver em falta, abra o site em modo de navegação anónima (a cache do navegador por vezes esconde alterações recentes).

A segunda causa provável é um plugin de cache (WP Rocket, W3 Total Cache, LiteSpeed Cache). Limpe a cache através do painel de administração do plugin e verifique novamente o site.

Se isso não ajudar, mude temporariamente o tema para um padrão (Twenty Twenty-Five ou Twenty Twenty-Six). O item apareceu? Então o problema está no tema personalizado; a sua função wp_nav_menu() pode estar sobrecarregada com filtros removidos. Verifique a chamada wp_nav_menu() no modelo do tema: o argumento 'items_wrap' não deve ser uma string vazia e 'fallback_cb' deve ser false apenas se desativar intencionalmente o fallback.

O código do «Método 2» funciona em qualquer tema, desde que o theme_location esteja correto; serve como seguro caso o método visual falhe por algum motivo.

Uma ligação para a página inicial no menu é um pequeno detalhe que gera confiança. Um visitante que aterra numa página interna a partir de uma pesquisa encontra o caminho de volta ao início numa fração de segundo e continua a explorar. Sem ela, parte da sua audiência simplesmente fechará o separador. Dois minutos no editor de menus ou dez linhas de código, e este ponto de entrada nunca mais se perde.