¡Cómo eliminar el enlace ‘Inicio’ de wp_nav_menu!

3 minutos de lectura

avatar de usuario
Beto

¿Cómo me deshago del enlace ‘Inicio’ para que no aparezca en la parte superior de mis enlaces cuando uso <?php wp_nav_menu( array('menu' => 'news', 'show_home' => false)); ?>

Lo intenté 'show_home' => false y 'show_home=0' pero tampoco funcionó.

  • publique el código de wp-head, y también especifique si ‘inicio’ es una página agregada a través de wp-admin/pages

    – Poelinca Dorín

    30 de marzo de 2011 a las 21:17

  • de index.php:

      ‘NewsMenu’)); ?>

    – Betto

    30 de marzo de 2011 a las 22:46


  • Sí, lo agregué a través de apariencia> menús> y uso la función wp_nav_menu() para obtener el menú que he creado desde allí.

    – Betto

    30 de marzo de 2011 a las 22:48

avatar de usuario
Chris McClellan

Esto debería estar en sus funciones.php

function page_menu_args( $args ) {
    $args['show_home'] = FALSE;
    return $args;
}
add_filter( 'wp_page_menu_args', 'page_menu_args' );

EDITAR: No olvide agregar esto donde se suponga que debe imprimir su menú:

wp_nav_menu( array('echo'=>true)); 

  • ¿Funcionará si agrego una página con el título ‘inicio’ a través de wp-admi/pages? esperemos algunos detalles antes de publicar una respuesta.

    – Poelinca Dorín

    30 de marzo de 2011 a las 21:22

  • Gracias, probaré con el código de arriba. poelinca no se a que te refieres, en apariencias>menus>no tengo home checkeado, si es eso a lo que te refieres.

    – Betto

    30 de marzo de 2011 a las 22:34

  • Oh funk, no sé si editaste tu publicación o la leí para no ver rápidamente que dice “Esto debería estar en tus funciones.php”. ¿Qué significa echo=>true? Por cierto, ¡gracias!

    – Betto

    31 de marzo de 2011 a las 17:16

  • puede pasar parámetros a wp_nav_menu a través de una matriz como esta. si ‘echo’=>false necesitaría asignarlo a una var como esta: $var = wp_nav_menu( array(‘echo’=>false)); echo $var;

    – Chris McClellan

    31 de marzo de 2011 a las 17:22

  • Esto es para wp_page_menu, no para wp_nav_menu.

    – escriba un error

    6 de julio de 2011 a las 1:19

avatar de usuario
dudn04

Lo siguiente funcionó para mí:

 _nav_menu( array( 'container_id' => 'topmenu', 'depth' => 0, 'menu_class' => 'sf-menu', 'theme_location' => 'topmenu' ) );

y agrego

 function page_menu_args( $args ) {
     $args['show_home'] = FALSE;
     return $args;
 }
 add_filter( 'wp_page_menu_args', 'page_menu_args' );

En el functions.php expediente.

Si, como yo, desea eliminar el enlace “inicio” de la menú predeterminado de wordpress (wp_page_menu) y el inicio es una página (no publicaciones de blog), esta es una forma de resolverlo:

en funciones.php:

function getPageBySlugname($slugname) {
    $args = array(
        'post_type'     => 'page',
        'hierarchical'  => 0,
        'post_status'   => 'publish'
    );
    $pages = get_pages($args);
    foreach ($pages as $page) {
        if ($page->post_name == $slugname) {
            return $page->ID;
        }
    }       
}

en encabezado.php

wp_page_menu(array(
    'container'         => 'div',
    'show_home'         => false, // Not sure what this is hiding, maybe if you have blogposts as home??
    'echo'              => true,
    'exclude'           => getPageBySlugname('homepage-slugname'), // change this to your slugname
));

avatar de usuario
ja de

¡Lo estás haciendo demasiado difícil! En su lugar, use CSS display: none para ese elemento .home en particular de un menú personalizado. Funciona a las mil maravillas. Ejemplo:

menu-blogroll .home {display:none !important;}

avatar de usuario
Prahsnt

Usé jquery para arreglar lo mismo.

$("div.menu > ul li:first-child").css("display","none");

  • ¿Dónde agregaste esta línea?

    – Tim Truston

    28/11/2012 a las 18:00

  • ¿Dónde agregaste esta línea?

    – Tim Truston

    28/11/2012 a las 18:00

¿Ha sido útil esta solución?