Você deseja exibir itens de menu de navegação diferentes para páginas diferentes no WordPress? Ou exibir um menu diferente para usuários conectados?
O WordPress permite que você mostre um menu de navegação em um local específico do seu tema, mas, por padrão, ele sempre mostrará o mesmo menu.
Neste artigo, mostraremos como adicionar lógica condicional aos menus no WordPress.
Por que adicionar lógica condicional a menus no WordPress?
Os menus de navegação dão estrutura ao seu site WordPress e ajudam os visitantes a encontrar o que estão procurando. Por padrão, seu site WordPress exibirá o mesmo menu de navegação para todos os usuários e em todos os posts e páginas.
No entanto, pode haver ocasiões em que você queira exibir menus diferentes para usuários diferentes ou em páginas diferentes do seu site.
Sites como uma loja on-line, uma comunidade de sites de associação do WordPress ou uma plataforma de aprendizado on-line podem se beneficiar de menus de navegação personalizados.
Usando a lógica condicional, você pode adicionar itens de menu extras para usuários conectados, para que eles possam gerenciar suas contas, renovar suas assinaturas ou visualizar os cursos on-line que compraram. Você pode pensar nisso como um controle de acesso ao menu do WordPress.
Dito isso, vamos dar uma olhada em como adicionar lógica condicional aos menus no WordPress. Aqui estão os tópicos que abordaremos neste tutorial:
- Criação de novos menus de navegação no WordPress
- Exibição de um menu diferente para usuários conectados no WordPress
- Exibição de um menu diferente no WordPress dependendo da função do usuário
- Exibição de um menu diferente para páginas diferentes no WordPress
- Ocultar o menu de navegação em páginas de destino no WordPress
- Como fazer mais com os menus de navegação do WordPress
Criação de novos menus de navegação no WordPress
A primeira etapa é criar os menus de navegação adicionais que você deseja exibir no WordPress. Depois disso, você pode usar a lógica condicional para decidir quando cada menu será exibido.
Basta ir até a página Appearance ” Menus no painel do WordPress. Se você já tem um menu de navegação que usa em seu site para todos os usuários, esse pode ser o menu padrão.
Em seguida, você precisa clicar no link “create a new menu” para criar um novo menu. Por exemplo, você pode criar um menu para exibir aos usuários conectados e outro para exibir em uma determinada página ou categoria do WordPress.
No lado esquerdo da tela, você pode ver uma lista das páginas do seu site. Basta marcar a caixa ao lado de qualquer página que você queira adicionar ao menu e clicar no botão “Add to Menu”.
Você também pode arrastar e soltar os itens de menu no lado direito da tela para reorganizá-los.
Mais abaixo na página, você pode escolher um local para exibir o menu. No entanto, não é necessário atribuir um local a esse menu agora. Faremos isso na próxima etapa.
Não se esqueça de clicar no botão “Save Menu” para armazenar suas alterações.
Para obter mais detalhes sobre a criação de menus, consulte nosso guia para iniciantes sobre como adicionar um menu de navegação no WordPress.
Exibição de um menu diferente para usuários conectados no WordPress
Muitas vezes, é útil exibir menus de navegação diferentes para os usuários, dependendo se eles fizeram login no site ou não.
Por exemplo, você pode incluir links de login e registro para usuários desconectados e adicionar um link de logout ao menu para o menu conectado.
Ou, se você estiver administrando uma loja WooCommerce, poderá incluir itens para seus clientes que estão ocultos para o público em geral.
Primeiro, você precisa instalar e ativar o plug-in Conditional Menus. Para obter mais detalhes, consulte nosso guia passo a passo sobre como instalar um plug-in do WordPress.
Após a ativação, você precisa visitar a página Appearance ” Menus e alternar para a guia “Manage Locations” (Gerenciar locais).
A partir daqui, você verá a lista de locais de menu disponíveis e os menus que estão sendo exibidos no momento. Isso varia de acordo com o tema do WordPress que você está usando.
Por exemplo, em nosso site de demonstração, o local do menu principal está mostrando um menu de navegação intitulado “Main Menu”.
Podemos dizer ao plug-in para mostrar um menu diferente quando uma determinada condição for atendida, clicando no link “+ Conditional Menu” e selecionando outro menu no menu suspenso. Para este tutorial, selecionaremos “Logged in Menu”.
Em seguida, você precisa clicar no link “+ Conditions” (+ Condições).
Isso abrirá uma janela pop-up na qual você verá várias condições para escolher.
Basta marcar a caixa ao lado da opção “Usuário conectado” e, em seguida, clicar no botão “Salvar”.
Agora você pode visitar o seu site para ver o menu do usuário conectado em ação. Você pode fazer logout do seu site para ver o menu de navegação que é exibido para todos os outros usuários.
Para obter instruções mais detalhadas e saber como fazer isso usando código, dê uma olhada no nosso guia sobre como mostrar menus diferentes para usuários conectados no WordPress.
Exibição de um menu diferente do WordPress dependendo da função do usuário
Após o login de um usuário, também é possível exibir um menu de navegação diferente, dependendo da função de usuário atribuída a ele.
Por exemplo, você pode incluir itens de menu adicionais para um administrador e itens mais limitados para um colaborador. Ou, em um site de associação, você pode conceder diferentes níveis de acesso a diferentes níveis de associação.
Como na seção anterior, é necessário instalar e ativar o plug-in Conditional Menus e, em seguida, visitar a página Appearance ” Menus e alternar para a guia “Manage Locations” (Gerenciar locais).
Você deve adicionar o menu condicional apropriado para a função de usuário que selecionará. Para este tutorial, selecionamos o menu “Nav Menu Administrator”.
Depois disso, você precisa clicar no link “+ Conditions” para poder escolher a função do usuário.
Você precisará clicar na guia “User Roles” (Funções do usuário) para ver as caixas de seleção de cada função de usuário no seu site. Basta clicar nas funções de usuário que visualizarão esse menu e, em seguida, clicar no botão “Save” (Salvar).
Exibição de um menu diferente para páginas diferentes no WordPress
Você pode exibir um menu diferente para páginas diferentes no WordPress. Por exemplo, você pode exibir itens de menu adicionais em sua página de política de privacidade, como um link para o aviso de cookies.
Para fazer isso, você precisa instalar e ativar o plug-in Conditional Menus, conforme mostrado acima, escolher o menu de navegação apropriado e clicar no link “+ Conditions”.
Dessa vez, você deve clicar na guia “Pages” (Páginas). Você verá uma lista de todas as páginas do seu site.
Você precisa colocar uma marca de seleção ao lado de cada página em que deseja exibir o menu de navegação e, em seguida, clicar no botão “Salvar”.
Ocultando o menu de navegação em páginas de destino no WordPress
Pode haver páginas em seu site em que você não queira exibir um menu de navegação, como as páginas de destino.
Uma página de destino é projetada para aumentar as vendas ou gerar leads para uma empresa. Nessas páginas, você deve minimizar as distrações e fornecer aos usuários todas as informações necessárias para que eles realizem uma ação específica.
Em nosso guia sobre como aumentar as conversões de sua página de destino em 300%, sugerimos que você minimize as distrações removendo os menus de navegação e outros links da página.
Você pode fazer isso usando o plug-in Conditional Menus. Ao selecionar o menu condicional, desta vez você precisa escolher “Disable Menu” (Desativar menu) no menu suspenso.
Em seguida, você precisa clicar no link “+ Condições” para escolher quando exibir o menu.
Você deve clicar na guia “Pages” (Páginas) e colocar marcas de seleção ao lado de suas páginas de destino.
Não se esqueça de clicar no botão “Salvar” para armazenar suas configurações.
Fazendo mais com os menus de navegação do WordPress
Os menus de navegação são uma poderosa ferramenta de web design. Eles permitem que você direcione os usuários para as seções mais importantes do seu site.
Agora que você está exibindo diferentes menus de navegação em diferentes páginas e para diferentes usuários, talvez esteja se perguntando como pode personalizá-los ainda mais.
Experimente estes tutoriais úteis para ampliar a funcionalidade dos menus de navegação em seu site WordPress.
- Como adicionar itens personalizados a menus específicos do WordPress
- Como adicionar menus de navegação personalizados em temas do WordPress
- Como adicionar um menu responsivo de tela cheia no WordPress
- Como criar um menu de navegação vertical no WordPress
- Como adicionar um mega menu ao seu site WordPress
- Como estilizar menus de navegação do WordPress
Esperamos que este tutorial tenha ajudado você a aprender como adicionar lógica condicional aos menus no WordPress. Você também pode querer aprender a criar fluxos de trabalho automatizados ou conferir nossa lista dos melhores plug-ins de prova social para WordPress e WooCommerce.
Se você gostou deste artigo, inscreva-se em nosso canal do YouTube para receber tutoriais em vídeo sobre o WordPress. Você também pode nos encontrar no Twitter e no Facebook.
Syed Balkhi says
Hey WPBeginner readers,
Did you know you can win exciting prizes by commenting on WPBeginner?
Every month, our top blog commenters will win HUGE rewards, including premium WordPress plugin licenses and cash prizes.
You can get more details about the contest from here.
Start sharing your thoughts below to stand a chance to win!
Bet Hannon says
Be VERY careful with making menus different across your site. It’s not a problem to show different menus to logged in/out users, but to meet WCAG 2.0+ accessibility standards, main menus should be consistent page to page.
WPBeginner Support says
Thank you for sharing that for those attempting to have those standards for their site.
Administrador
Kevin says
I don’t see the “Enable conditional logic” under Appearance -> Menu. I’m using WordPress 5.7 as of March 16, 2021.
WPBeginner Support says
The wording may have changed since this article but there should still be a checkbox for changing the visibility.
Administrador
Laurentiu says
A small feature, but very missed when a programmer is asked to work in wordpress.
WPBeginner Support says
Glad you found this recommendation helpful
Administrador
Richard Spatts says
Thanks for this, it really helped
WPBeginner Support says
You’re welcome, glad our guide helped
Administrador
Richard S. says
BIG Thank you for this article, it’s awesome.
Your snippet of code was perfect for a project I was working on, as was this plugin which I’m now using.
Even in 2019 this is a handy page, it’s working well on WordPress 5.2.3 (Astra Pro theme) so still very applicable.
WPBeginner Support says
You’re welcome, glad our recommendation is helpful
Administrador
Vasim Shaikh says
I would like to ask I have added role for user Author and subscriber both then its should be display to author not subscriber. how to handle this?
WPBeginner Support says
You could set it to show if the user is the role of Author
Administrador
Rudolf says
Really simple and easy to use plugin. Fantastic! It did not only save me a lot of time but also an organizational advantage because instead of using widget logic with different menu widgets, I create now one 1 menu with conditions per item.
Jonathan P says
Thank you,
I have only used this plugin for conditions for users that are logged in or not logged in, but it works great, it really has saved me hours of messing around with code.
Kiva says
Could I set up this plugin so that I can set up different menu options for each different category?
Sphelele says
There is no conditional logic feature on my menu.
David says
Thank you guys for sharing this. However it will display a PHP Notice on conditioned menu items and the custom condition won’t be displayed among condition options, if you don’t specify the id parameter.
Paul says
Hi, I added conditions (if a string matches the server name, a menu is hidden). Great! But I would like to add even more custom conditions. Could you show an example of the code you would use to add more than on name/condition pair the custom option?
name = “If the site is not www.”
condition = www is not in SERVER_NAME
name = “Paul site.”
condition = “paul is in SERVER_NAME”
etc.
Thanks!
Isuru says
This Conflicts the WP User Manager Pro, and then user manager Pro plugin functions not working due to the confliction.
as an ex: Show password tick in user registration page doesn’t work, as well as login page also not functioning well.
can you please fix this
Mo says
Yep, definitely broken.
Works great for the built in conditions, but when coding custom conditions it works once and then stops working.
jban says
YES!!! After 90 minutes of trying to figure this out, this article made it work for me. THANK YOU!!!
Jesus Flores says
Works great!!! Thank you
Mohi says
Hello
I installed this plugin, but I am getting an warning as follows :
Warning: Missing argument 2 for custom_nav_edit_walker() in /var/www/equest/wp-content/themes/wp-questrian/framework/megamenu/mega-menu.php on line 42
How to solve this warning ? Please guide me.
WPBeginner Support says
Seems like the plugin is not compatible with your theme’s mega menu functionality. Please contact your theme’s support.
Administrador
JMD says
I have not used the If Menu plugn, but I tried the Nav Menu Roles plugin
It works but then conflicts with the Mega menu functionality of my theme.
I am hesitant to try the If Menu plugin mainly because it has not been updated in so long. It will be a matter of time before I have to remove it for sure.
Peter says
Could not get this plugin to work. Not showing up i menu-items. Using: WP 4.3 / Nimwa theme.
Any suggestions on similar working plugin? Just want to hide some menu items while working on them…
Shafiq says
Seems to work ok under WP 4.3.
Chuks Eke says
Hi,
Could this be achieved with this plugin,
I want to have different menu for different pages or post. for example,
Home | About Us | Service | Contact
About Us [ History | Team | Career ]
Services [ Web Development | Window Application | Corporate ID ]
Is it possible with this plugin to show sub menu on side menu for About Us
Mike J says
I found this plugin does not work with some themes
WPBeginner Support says
Please report the themes to plugin using the support tab on the plugin page. May be they can help you with this.
Administrador
Dieter says
Seems to be broken under WP 4.2.2.
WPBeginner Support says
What seems to be the problem? Working fine at our end.
Administrador
Dieter says
I stopped installation after reading WP Org PlugIn Page, there is the comment “1 person says it is broken” and in the support section is an open report which is not solved.
If I read something like this I don’t even try to install such plug in.
Jagabandhu says
The plugin is not working. It’s not showing “enable conditional logic” and the plugin author is not responding from last 7 months.
Tried with disabling other plugins. But no result.
Is there any other plugin to do so!?
I need it.
WPBeginner Support says
We just tested the plugin and it is working fine at our demo site. Can you test it by switching to a default theme with no other plugins activated?