Você está procurando uma maneira de limitar a quantidade de itens de menu? Embora provavelmente exista um plug-in para isso, criamos um trecho de código rápido que você pode usar para limitar a quantidade de itens de menu no WordPress.
Se o seu tema usa wp_nav_menu
para puxar um menu que um usuário definiu em seu Theme Location, mas você deseja limitar o número máximo de itens de menu de nível superior, esse código é exatamente o que você precisa.
Por exemplo: Testamos um tema que oferece suporte a menus e tem um local de tema “mainmenu” para puxar um menu como menu principal/navegação superior no site. Mas, devido ao design/CSS (largura fixa), só há espaço para um máximo de 7 itens no nível superior de qualquer menu que seja puxado.
Essa solução usa um filtro para fazer isso em qualquer tema do WordPress que você escolher usar.
Instruções:
Tudo o que você precisa fazer é adicionar esse código ao arquivo functions.php do seu tema ou em um plug-in específico do site:
<?php add_filter( 'wp_nav_menu_objects', 'mytheme_menufilter', 10, 2 ); function mytheme_menufilter($items, $args) { // want our MAINMENU to have MAX of 7 items if ( $args->theme_location == 'mainmenu' ) { $toplinks = 0; foreach ( $items as $k => $v ) { if ( $v->menu_item_parent == 0 ) { // count how many top-level links we have so far... $toplinks++; } // if we've passed our max # ... if ( $toplinks > 7 ) { unset($items[$k]); } } } return $items; } ?>
Observação: Se esta é a primeira vez que você adiciona trechos de código no WordPress, consulte nosso guia sobre como adicionar corretamente trechos de código no WordPress, para não danificar seu site acidentalmente.
Se você gostou desse snippet de código, considere dar uma olhada em nossos outros artigos no site, como: 9 melhores plug-ins imobiliários do WordPress e Como proteger seus formulários do WordPress.
hello. I have some Menus should be appeared generally. But I have one Menu too, named ‘Editor’ just to be shown for Editors in wordpress. this will be defined by a field named wpum_relationship_to_lib which is a multiple choices field including different options like: editor, student, employee and so on. people can be 2 or 3 or just one at the same time. but it is important that one the options the user chose must be “editor” to access the Menu “Editor”. I wrote some codes in a test platform and unset the menu for non-editors an also before log-in and it works but in the main platform with required changes it does not. would you guide me please?
Thanks, that’s what I needed.
> then this code is exactly what you need.
What code?
Hey Brad,
I just updated the post with the snippet.