Como posso exibir um menu apenas em algumas páginas?

9

Em vez de usar widgets da barra lateral para saber em qual página eles devem estar visíveis, eu gosto de escolher as configurações do menu para aparecer em páginas específicas.

Forma padrão do Wordpress:

Portanto,projetoséumapáginaetemalgumassubpáginas.Maseseeutivermais10dessaspáginasesubpáginascomamesmasituação?

Gostariadeadicionarumaconfiguraçãoextra(umalistadaspáginasdenívelsuperior):

Mas não consigo encontrar documentação, ações, filtros, etc., quando essas configurações são carregadas.

    
por 20.06.2014 / 09:41

7 respostas

3

Essa é uma boa opção, mas eu concordo com a sri, agora ela realmente depende do seu tema. Você pode fazer um trabalho por meio de is_page () . Você precisa escrever algo assim em seu arquivo de tema page.php :

<?php
    if (is_page('projects')) {
        if ( is_active_sidebar( 'sidebar-navigation' )) {
            dynamic_sidebar( 'sidebar-navigation' );
        }
    }
?>

Se você quiser mostrar a barra lateral também em outras páginas, pode usar a lógica ou como esta:

if (is_page('projects') || is_page('home') || is_page('post-page'))
    
por Bernie 14.09.2014 / 11:31
1

Acho que usar um plug-in para isso é melhor, para que você possa manter a funcionalidade mesmo se alterar os temas no futuro. Confira este plugin. Ele faz o que você quer, mas um pouco diferente do que você zombou.

enlace

Se isso ajudar, vote ou aceite como resposta. Obrigado!

    
por Mark.C 14.07.2014 / 20:42
1

É assim que você pode fazer isso em Twenty Twelve themes header.php copiados para um tema filho.

<?php if ( is_page('projects') ) : ?>
<?php wp_nav_menu( array( 'theme_location' => 'primary', 'menu' => 'conditional-menu-name', 'menu_class' => 'nav-menu' ) ); ?>
<?php else : ?>
<?php wp_nav_menu( array( 'theme_location' => 'primary', 'menu' => 'Primary', 'menu_class' => 'nav-menu' ) ); ?>
<?php endif; ?>

Crie um novo menu com os itens que você deseja exibir e troque o nome do menu condicional no código acima pelo nome do seu menu.

Os nomes de menu_class podem precisar ser alterados para outros temas além de Twenty Twelve.

Fonte

    
por Brad Dalton 05.11.2014 / 22:48
1

Eu sei que esse segmento é antigo, mas no caso de alguém precisar pesquisar por uma resposta para isso, eu gostaria de sugerir os menus condicionais de themify enlace . Você escolhe qual menu usar, por página, categoria, meta, tudo. e é grátis :) espero que isso ajude

    
por rosane 14.11.2015 / 18:44
0

Se você estiver disposto a reengajar seus widgets e quiser uma solução simples, use um plug-in chamado Widgets de exibição. Eu usei isso e use a parte de texto onde você pode adicionar links para onde você quer ir. Funciona se os links estiverem em seu próprio site ou em outro site. Tem um espaço abaixo do texto onde você pode escolher quais páginas exibir ou ocultar. Você ainda pode remover os widgets que não usa.

Eu brinquei com os menus por um bom tempo antes de procurar e encontrar este plugin. Isso funciona bem.

Você pode encontrá-lo na seção Plugins do WordPress.org.

    
por Susan 20.06.2014 / 15:56
0

Uma opção seria criar modelos personalizados para cada menu que você tem. (Isso se refere à caixa de seleção de locais do tema) Em seguida, em cada página, você escolhe o modelo que deseja usar e também usa o menu associado a esse modelo.

enlace

Ele te dá o mesmo resultado que eu acho que você está procurando, mas ao invés de dizer a cada menu que página ele mostra, você estará dizendo a cada página qual menu irá mostrar nele. Um benefício adicional de fazer isso dessa maneira é que não há como você acidentalmente informar dois menus para estarem no mesmo lugar ao mesmo tempo.

    
por KnightHawk 23.07.2014 / 17:28
-1

Você pode usar o plugin Menu Swapper para fazer a mesma coisa no painel de administração. Aqui está a demonstração deste plug-in.

    
por hmjha 17.04.2016 / 21:32