wordpress wp_nav_menu仅显示前5个菜单项

ddarikpa  于 2023-03-29  发布在  WordPress
关注(0)|答案(4)|浏览(180)

如何限制wp_nav_menu拉入的菜单项的数量?我只想拉入前5个菜单项,尽管实际菜单中有20个。客户端将选择订单,在所有其他地方,显示完整的菜单是可以的。
这是我正在尝试的,但似乎不起作用:
首页〉产品展示〉产品展示〉产品展示〉产品展示〉产品展示〉产品展示〉产品展示〉产品展示〉产品展示〉产品展示〉产品展示〉产品展示〉产品展示〉产品展示〉产品展示〉产品展示〉产品展示〉产品展示

wgx48brx

wgx48brx1#

你能在管理中创建一个单独的菜单,只包含这五个项目,按照客户想要的顺序吗?然后你可以将该菜单附加到这个位置,另一个附加到其他位置。

t8e9dugd

t8e9dugd2#

这是我的解决方案(你需要修改“primary_navigation”):

function max_nav_items($sorted_menu_items, $args){
    if($args->theme_location != "primary_navigation") return $sorted_menu_items;
    $items = array();
    foreach($sorted_menu_items as $item){
        if($item->menu_item_parent != 0) continue;
        $items[] = $item;
    }
    $items = array_slice($items,0,8);
    foreach($sorted_menu_items as $key=>$one_item){
        if($one_item->menu_item_parent == 0 && !in_array($one_item,$items)){
            unset($sorted_menu_items[$key]);
        }
    }
    return $sorted_menu_items;
}
add_filter("wp_nav_menu_objects","max_nav_items",10,2);
rfbsl7qr

rfbsl7qr3#

您可以使用css :nth-child(),在本例中为(n+6)

nav.main-navigation li:nth-child(n+6){
    display: none;
}
umuewwlo

umuewwlo4#

尝试将此代码添加到主题的functions.php文件中。

function limit_quicklinks_menu_items( $items, $args ) {
        if ( $args->theme_location == 'quicklinks' ) {
            $items = array_slice( $items, 0, 5 );
        }
        return $items;
    }

add_filter( 'wp_nav_menu_items', 'limit_quicklinks_menu_items', 10, 2 );

此代码可用于限制wp_nav_menu()针对特定菜单位置(如快速链接)拉入的菜单项数量。此代码使用wp_nav_menu_items过滤器在显示菜单项数组之前修改菜单项数组。

相关问题