从子主题取消注册导航菜单-主题

时间:2012-04-22 作者:ogni

我喜欢使用Starkers Theme 并构建子主题。

所以,我想删除这个主菜单

Starkers(functions.php)

function starkers_setup() {
// This theme uses wp_nav_menu() in one location.
register_nav_menus( array(
\'primary\' => __( \'Primary Navigation\', \'starkers\' ),
) );


}
endif;
我的孩子主题功能。php如下所示:

unregister_nav_menu( array(
\'primary\' => __( \'Primary Navigation\', \'starkers\' ),
));

// my new nav
register_nav_menus(array(
\'primary_navigation\' => __(\'Main\', \'starkers\'),
\'utility_navigation\' => __(\'Meta\', \'starkers\')
));
但这对我不起作用。

怎么了
谢谢

3 个回复
最合适的回答,由SO网友:kaiser 整理而成

Starkers主题设置连接到after_setup_theme, 优先级为10. 因此,您基本上必须将unregister函数包装在另一个函数(child-themes functions.php文件)中,并将其添加到比父主题设置函数更晚的位置,因此它首先由父主题添加,然后由子主题删除。

function wpse_remove_parent_theme_locations()
{
    // @link http://codex.wordpress.org/Function_Reference/unregister_nav_menu
    unregister_nav_menu( \'primary\' );
}
add_action( \'after_setup_theme\', \'wpse_remove_parent_theme_locations\', 20 );

SO网友:IFightCode

这肯定对你有用,我刚退房

add_action( \'after_setup_theme\', \'remove_default_menu\', 11 );
function remove_default_menu(){
unregister_nav_menu(\'primary\');
}

SO网友:Aleksandar M

其他解决方案对我不起作用。

这个成功了:

function remove_parent_theme_locations()
{
    unregister_nav_menu( \'primary\' );
}
add_action( \'init\', \'remove_parent_theme_locations\', 20 );

结束

相关推荐

Add_Filters()和Apply_Filter()有什么作用?

我有点困惑,为什么这不起作用-尽管必须说,我不太确定是什么apply_filters() 和add_filter 正在做,所以任何一般性的提示都会很好!我想要一个查询,在一个帖子页面上显示之前的五篇帖子。我正在发送当前帖子的日期,并希望应用一个过滤器,过滤出早于此的帖子。function sw_filter_posts_before( $where = \'\', $date) { $where .= \" AND post_date < \'\" . $date . \"