菜单子项不保持其位置

时间:2015-08-17 作者:Sovnfield

我尝试在函数中动态隐藏一些菜单项(从唯一菜单)。php。我有一些子域。我向菜单项添加CSS类,然后根据当前子域隐藏它们。这是我的代码:

add_filter( \'wp_get_nav_menu_items\', \'hide_menu_item\', 10, 3 );
function hide_menu_item ( $items, $menu, $args ) {
    $sub = array_shift((explode(".",$_SERVER[\'HTTP_HOST\'])));

    if(!is_admin()){
        foreach ( $items as $key => $item ) {
            if ( $item->classes[0] == \'subdomain1\' && $sub != \'part1\' || $item->classes[0] == \'main\' && $sub != \'domain\') {
                unset( $items[$key] );
            }
        }
    }
    return $items;
}
subdomain1main 是类,part1 是子域,并且domain 是主域。一、 e。main 是项目产品的类别,并且subdomain1 是子项Smartphone的类。它们都显示在域上。com,并且产品隐藏在part1上。领域com。它可以工作,但问题是,子域part1上的智能手机被弹出到菜单的末尾,而它原来位于菜单的中间。

如何“保持”子项的位置或隐藏父项的位置?

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

我在导航菜单中找到了答案。php,它并不太复杂。我刚刚更改了foreach循环内容,如下所示:

if($item->classes[0] == \'subdomain1\' && !empty( $item->menu_item_parent )){
    $item->menu_item_parent = \'\';
}elseif($item->classes[0] == \'main\' && $sub != \'domain\'){
    unset($items[$key]);
}
希望能有所帮助!

结束

相关推荐

Use menus with anchors

我有一个CPT归档页面,我想创建一个导航菜单,该菜单将跳转到表单中的锚定<a name=\"post-slug\" http=\"{the permalink goes here}>The CPT Title</a>我已经能够在模板文件中创建锚定,所以这不是问题对于页面顶部的链接本身,我可以手动创建它们,也可以使用WordPress菜单系统中的自定义链接。。。。但是有很多,所以我宁愿尝试在WordPress菜单系统中创建一个常规菜单。问题是,我需要以某种方式调整它的输出,以更改常规