Você está procurando uma maneira de limitar a quantidade de itens de menu? Embora provavelmente exista um plugin para isso, criamos um snippet 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 carregar um menu que um usuário definiu em sua Localização de Tema, mas você deseja limitar o número máximo de itens de menu de nível superior, este código é exatamente o que você precisa.
Por exemplo: Testamos um tema que suporta menus e tem uma localização de tema "mainmenu" para carregar um menu como o menu principal / navegação superior do site. Mas devido ao design / CSS (largura fixa), há espaço apenas para um máximo de 7 itens no nível superior de qualquer menu que seja carregado.
Esta 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 este código ao arquivo functions.php do seu tema ou a um plugin 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 sua primeira vez adicionando snippets de código no WordPress, consulte nosso guia sobre como adicionar snippets de código corretamente no WordPress, para não quebrar acidentalmente seu site.
Se você gostou deste trecho de código, considere conferir nossos outros artigos no site, como: 9 melhores plugins de imóveis para WordPress e Como proteger seus formulários do WordPress.
olá. Tenho alguns Menus que deveriam aparecer geralmente. Mas tenho um Menu também, chamado 'Editor' apenas para ser mostrado para Editores no wordpress. isso será definido por um campo chamado wpum_relationship_to_lib que é um campo de múltipla escolha incluindo diferentes opções como: editor, estudante, funcionário e assim por diante. as pessoas podem ser 2 ou 3 ou apenas uma ao mesmo tempo. mas é importante que uma das opções que o usuário escolheu deve ser "editor" para acessar o Menu "Editor". Escrevi alguns códigos em uma plataforma de teste e desativei o menu para não editores e também antes do login e funcionou, mas na plataforma principal com as alterações necessárias não funciona. você poderia me guiar por favor?
Obrigado, era o que eu precisava.
> então este código é exatamente o que você precisa.
Que código?
Oi Brad,
Acabei de atualizar a postagem com o trecho.