¿Cómo puedo mostrar un menú solo en ciertas páginas?

9

En lugar de usar los widgets de la barra lateral para indicar en qué páginas deben estar visibles, me gusta elegir en la configuración del menú para que aparezca en páginas específicas.

Forma predeterminada de Wordpress:

Asíquelosproyectossonunapáginaytienenalgunassubpáginas.Peroquépasasitengocomo10másdeestaspáginasysubpáginasconlamismasituación.

Megustaríaagregarunaconfiguraciónadicional(unalistadelaspáginasdenivelsuperior):

Pero no puedo encontrar ninguna documentación, acciones, filtros, etc. cuando se cargan estas configuraciones.

    
pregunta 20.06.2014 - 09:41

7 respuestas

3

Esa es una buena opción, pero estoy de acuerdo con sri, en este momento realmente depende de tu tema. Puede hacer una solución a través de is_page () . Debe escribir algo como esto en su archivo de tema page.php :

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

Si también desea mostrar la barra lateral en otras páginas, puede usar la lógica o de esta forma:

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

Creo que usar un complemento para esto es mejor, así que puedes mantener la funcionalidad incluso si cambias de tema en el futuro. Echa un vistazo a este plugin. Hace lo que quieres, pero de forma ligeramente diferente a cómo te burlas.

enlace

Si esto ayuda, por favor vote o acepte como respuesta. Gracias!

    
respondido por el Mark.C 14.07.2014 - 20:42
1

Así es como puedes hacerlo en Twenty Twelve temas header.php copiado a un tema secundario.

<?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; ?>

Cree un nuevo menú con los elementos que desea mostrar e intercambie el nombre del menú condicional en el código anterior con el nombre de su menú.

Es posible que los nombres de

menu_class deban cambiarse para temas que no sean Twenty Twelve.

Source

    
respondido por el Brad Dalton 05.11.2014 - 22:48
1

Sé que este hilo es antiguo pero en caso de que alguien necesite buscar una respuesta para esto, me gustaría sugerir los menús condicionales de themify enlace . Usted elige qué menú usar, por página, categoría, meta, todo. y es gratis :) Espero que esto ayude

    
respondido por el rosane 14.11.2015 - 18:44
0

Si está dispuesto a volver a activar sus widgets y desea una solución simple, puede usar un complemento llamado Mostrar widgets. He usado esto y uso la parte de texto donde puedes agregar enlaces a donde quieras ir. Funciona si los enlaces están en su propio sitio o en otro sitio. Tiene un espacio debajo del texto donde puede elegir qué páginas mostrar u ocultar. Aún puedes eliminar los widgets que no utilices.

Jugué con los menús durante bastante tiempo antes de buscar y encontrar este complemento. Funciona bien.

Puede encontrarlo en la sección de Complementos de WordPress.org.

    
respondido por el Susan 20.06.2014 - 15:56
0

Una opción sería crear plantillas personalizadas para cada menú que tenga. (Esto se refiere a la casilla de verificación de las ubicaciones del tema) Luego, en cada página, usted elige la plantilla que desea que use y también usará el menú asociado con esa plantilla.

enlace

Le da el mismo resultado que creo que está buscando pero, en lugar de decirle a cada menú en qué página se muestra, le estará diciendo a cada página qué menú se mostrará en él. Un beneficio adicional de hacerlo de esta manera es que no hay manera de que le digas a dos menús que estén en el mismo lugar al mismo tiempo.

    
respondido por el KnightHawk 23.07.2014 - 17:28
-1

Puede usar el complemento Swapper de menú para hacer lo mismo desde el panel de administración. Aquí está la demostración de este complemento.

    
respondido por el hmjha 17.04.2016 - 21:32

Lea otras preguntas en las etiquetas