Как удалить ссылку "Главная" из wp_nav_menu!

Как мне избавиться от ссылки "Главная" от появления в верхней части моих ссылок при использовании <?php wp_nav_menu( array('menu' => 'news', 'show_home' => false)); ?>

Я пробовал 'show_home' => false и 'show_home=0', но не работал.

Ответы

Ответ 1

Это должно быть в ваших функциях .php

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

РЕДАКТИРОВАТЬ: не забудьте добавить это везде, где должно быть напечатано ваше меню:

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

Ответ 2

Следующие работали для меня:

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

И добавляю

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

В файле functions.php.

Ответ 3

Если вы похожи на меня, чтобы удалить ссылку "домой" из стандартного меню Wordpress (wp_page_menu), а на домашней странице (а не в блогах) это один из способов ее решения:

в functions.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;
        }
    }       
}

в header.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
));

Ответ 4

Вы делаете это слишком сложно! Вместо этого используйте отображение CSS: none для этого конкретного. Домашнего элемента пользовательского меню. Отлично работает. Пример:

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

Ответ 5

Я использовал jquery, чтобы исправить то же самое.

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