主页自定义菜单链接不起作用

时间:2013-10-02 作者:Arturo

在使用自定义菜单和functions.php 文件我有:

function home_page_menu_args( $args ) {
    $args[\'show_home\'] = true;
    return $args;
}
add_filter( \'wp_page_menu_args\', \'home_page_menu_args\' );
问题是,在自定义菜单选项>页面中,我有这样一句话:“没有项目。”所以不知道发生了什么,它在其他网站上运行,但在这个网站上没有,你知道吗?

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

首先,我假设您已经正确配置了自定义导航菜单:

  1. register_nav_menus() 在里面functions.php, 定义theme_locationwp_nav_menu() 模板中的调用,使用theme_location 在分配给主题位置的管理自定义导航菜单中定义的args数组中调用,如果是这种情况,则问题是使用了错误的筛选器。这个wp_page_menu_args filter is applied 的内部wp_page_menu(), 这是的默认回调wp_nav_menu() 未为指示的指定菜单时theme_location.

    的输出wp_nav_menu() 应用自己的筛选器:wp_nav_menu_args. 因此,您还需要将回调挂接到该过滤器中:

    function home_page_menu_args( $args ) {
        $args[\'show_home\'] = true;
        return $args;
    }
    add_filter( \'wp_page_menu_args\', \'home_page_menu_args\' );
    // Hook into wp_nav_menu
    add_filter( \'wp_nav_menu_args\', \'home_page_menu_args\' );
    
    那样的话show_home arg将同时返回truewp_page_menu() 输出和wp_nav_menu() 输出

    小心wp_nav_menu(), 虽然如果用户向自定义菜单添加主页链接,则渲染菜单中将显示两个主页链接。

结束

相关推荐

Display all submenus

对于我想显示的自定义jquery菜单all submenus 并根据需要隐藏/显示每个。然而,我的问题是首先显示所有子菜单。截至目前,我正在管理first level 通过admin menu 部分:将菜单项添加到主菜单。显示器的工作原理如下:wp_nav_menu( array ( \'sort_column\' => \'menu_order\' , \'container\' => \'ul\' , \