取消注册带回退功能的导航菜单?

时间:2013-04-30 作者:RodeoRamsey

我正在尝试创建一个子主题,这样主题更新就容易多了。我想删除父主题菜单并添加我自己的主题菜单。我知道我可以修改标题。php文件(存在这些菜单的地方)并直接编辑wp\\u nav\\u菜单,但我试图避免使用尽可能多的主题文件,所以我试图在我的函数中实现这一点。php文件。

使用unregister_nav_menu 我可以从父主题位置删除菜单,如下所示:

function RR_remove_parent_theme_menus()     {
    unregister_nav_menu( \'top-menu\' );
    unregister_nav_menu( \'header-menu\' );
}
add_action( \'after_setup_theme\', \'RR_remove_parent_theme_menus\', 20 );
这对于“顶部菜单”非常有用,但“标题菜单”是在父主题中编码的,带有自定义回退。是否有任何方法可以使用unregister\\u nav\\u menu或其他方法覆盖自定义(或默认)菜单回退?

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

您可以筛选\'wp_nav_menu_args\', 设置无效的theme_location 还有魔法功能__return_false 作为后备:

add_filter( \'wp_nav_menu_args\', \'override_parent_args\' );

function override_parent_args( $args )
{
    if ( \'header-menu\' === $args[\'theme_location\'] )
    {
        $args[\'fallback_cb\']    = \'__return_false\';
        $args[\'theme_location\'] = \'ticky_tacky\';
    }

    return $args;
}

结束

相关推荐

WP_Query in functions.php

我有一些代码要转换成函数。它工作得很好,直到我将其包装到所述函数中: $args = array( \'posts_per_page\' => -1, \'post_type\' => \'asset\', \'category_name\' => $cat ); $cat_query = new WP_Query( $args );