Como Corrigir o Limite de Itens de Menu Personalizados no WordPress

Há poucos dias, um de nossos usuários relatou um problema incomum. O problema era que ele estava atingindo o limite de itens de menu personalizados. Qualquer coisa que ele salvasse depois de atingir o limite de itens de menu não era salva. Nunca tínhamos ouvido falar desse problema, então decidimos testá-lo em nossa instalação local. Criamos mais de 200 itens de menu e os salvamos. Funcionou perfeitamente. Movemos 100 itens para um menu suspenso e isso foi salvo perfeitamente. Nesse ponto, sabíamos que isso tinha algo a ver com o servidor. Após mais pesquisas, parecia que muitos outros estavam tendo o mesmo problema. Investigando um pouco mais, encontramos um ticket do trac (#14134) que destacava esse problema. Após ler o ticket do trac muito, muito longo, parece que o problema ainda não foi corrigido, mas existe uma solução alternativa para aqueles que estão tendo esse problema. Neste artigo, mostraremos como corrigir o limite de itens de menu personalizados no WordPress.

Para corrigir o problema, você precisa editar seu arquivo PHP.ini. Se você estiver em um servidor dedicado ou em um VPS com acesso root, você já deve saber do que estamos falando. Se você estiver em uma hospedagem compartilhada ou não souber onde está o arquivo PHP.ini, peça ao seu provedor de hospedagem web para fazer isso por você.

Você precisa pedir a eles para definir os seguintes valores na configuração do PHP.ini:

suhosin.post.max_vars = 5000
suhosin.request.max_vars = 5000

Outro usuário “ronnieg” postou uma solução alternativa que ele tem para seu grande site de imóveis (mais de 450 páginas e crescendo) e menu. Você pode ler a resposta dele para acompanhar. (Nota: não tentamos esta)

Explicação do Problema

This problem is not entirely WordPress based as different folks are seeing different limits (some say 16 others say 50 and as you already know we went as high as 200 without seeing any limits). In theory, WordPress is not limiting the number of menus you can have. Your web hosting server is. There are Suhosin limitations on the POST max variables which is limiting the large number of entries being saved. Nacin replied in the trac ticket to say that this is NOT a bug rather it is an enhancement. The core team has to find a way to work around the server limitations and figure out a better way to save the menu items, so regardless of your server configuration you do not see any custom menu limits. It’s easier said than done :)

WordPress é um projeto de código aberto (voluntário), e a equipe principal faz tudo o que pode para melhorá-lo todos os dias. Isso será corrigido, mas o cronograma ainda não está definido, pois diz "Futuras Versões".

Se você tentou algo diferente que resolveu esse problema para você, por favor, nos avise nos comentários. Isso permitirá que outros resolvam seus problemas até que a equipe principal encontre uma solução alternativa.

Aviso: Nosso conteúdo é apoiado pelos leitores. Isso significa que, se você clicar em alguns de nossos links, poderemos ganhar uma comissão. Veja como o WPBeginner é financiado, por que isso importa e como você pode nos apoiar. Aqui está nosso processo editorial.

O Kit de Ferramentas Definitivo para WordPress

Obtenha acesso GRATUITO ao nosso kit de ferramentas - uma coleção de produtos e recursos relacionados ao WordPress que todo profissional deve ter!

Interações do Leitor

80 CommentsLeave a Reply

  1. Olá! Estou usando hospedagem compartilhada. É por isso que não tenho acesso root para editar o arquivo phpi.ni. Como posso resolver o problema?

  2. Olá

    Aparência -> Menu -> ao clicar -> redirecionando para -> página 404

    Adicionei alguns menus principais e categorias ao meu site. depois de um tempo, não consegui abrir o menu para modificar ou excluir nada. meu site está redirecionando para a página 404. Tentei muitos códigos, mas nada funciona. Por favor, me ajude

  3. Eu tive o mesmo problema... mas estou em localhost... então não tenho ninguém para pedir ajuda! (Windows 10/XAMPP/WP4.8). Novo no WP, nem sei onde encontrar o php.ini! Minha "solução rápida" foi remover alguns itens de submenu menos importantes. Mas quero colocá-los de volta. Verifiquei o aumento de memória mencionado acima, mas é antigo. Pode não funcionar no WP4.8. Não vale o risco!

  4. Olá.

    Obrigado pelas ótimas informações. Finalmente resolvi o problema na hospedagem GoDaddy criando um arquivo ph5.ini no Webroot com as seguintes informações:

    memory_limit = 256M;
    max_execution_time = 300;
    max_input_vars = 3000;

    problema resolvido após o atendimento ao cliente redefinir o banco de dados, algo que eu não conseguia fazer. Espero que isso ajude.

  5. Olá, obrigado por isso

    Eu executo e tive esse problema. Eu tinha um menu longo e um dia ele diminuiu para apenas 50 linhas. O suporte do tema enviou para este tópico. Eu tentei todas as opções, mas apenas uma funcionou para mim, mesmo sem entrar em contato com o suporte de hospedagem.

    Eu adicionei “php_value max_input_vars 5000” (sem aspas) ao meu arquivo .htaccess antes da linha “#fim do wordpress” e isso resolveu o problema.

  6. Olá Equipe,

    Estou usando Hostgator com Multidomain SSL.

    Verifiquei as configurações e não sei onde e como fazer.

    Adicionei o arquivo php.ini com o código max_input_vars=9000; e ainda não consigo adicionar itens ao menu principal.

    Alguém me ajude. Muito apreciado.

    Atenciosamente,
    -Rams

  7. Estou tendo esse problema agora, contatei os hosts que dizem que não podem / não aumentarão para 5000 vars porque é um servidor compartilhado, existe alguma outra solução? é possível ter dois menus de navegação na mesma página, isso resolveria o problema, ou continuaria simplesmente.

    Agradeço antecipadamente, qualquer ajuda seria muito apreciada

  8. Incrível. Eu tenho o mesmo problema há muito tempo sem saber o motivo. Perguntei a muitas pessoas. Só hoje consertei meu problema. HostGator não precisa ligar para o representante do centro de atendimento. Podemos fazer isso sozinhos. Realmente útil, sem palavras para agradecer

  9. Mahalo nui loa (muito obrigado)!

    Isso funcionou para o site de um cliente que está na Bluehost, hospedagem compartilhada:
    1. Cpanel > Gerenciador de Arquivos
    2. public_html > wp-admin
    3. Clique em “Novo Arquivo” > nomeie-o como php.ini (se você ainda não tiver este arquivo)
    4. Clique em php.ini > clique em “editar” > clique em “editar” novamente
    5. Cole: max_input_vars=5000; > Salvar > FEITO

    • Isso funcionou no meu caso! Você é meu anjo! Compartilhamento fantástico. Estou com este problema há 2 dias. Muito obrigado!

      • Eu tentei,

        no arquivo .htaccess:
        php_value max_input_vars 5000

        no arquivo php.ini:
        max_input_vars=5000;
        upload_max_filesize = 70M;
        post_max_size = 128M;
        upload_tmp_dir = 70M;
        max_input_vars = 3000;
        memory_limit = 256M;

        no arquivo .user.ini:
        max_input_vars=3000;

        e também testei colocando php.ini & .user.ini na pasta wp-admin e fora dela, nada funciona para mim,

        ao adicionar no arquivo .htaccess a página de admin do wp fica em branco (branca).
        meu hosting é

        qualquer ajuda é apreciada. TIA

  10. Eu uso GoDaddy e a correção do php.ini não funcionou nada para mim. A GoDaddy nem reconhece essa página ou código como válido.

    Obtendo ajuda das pessoas da GoDaddy, eles me forneceram uma solução alternativa.

    Criei uma página na minha pasta html .user.ini (ponto-user-ponto-ini). Nessa página adicionei o código:

    max_input_vars = 3000

    Parece funcionar até agora.

    • criei uma página na minha pasta html .user.ini (ponto-user-ponto-ini) -> você quis dizer criar um ARQUIVO na sua pasta PUBLIC_HTML?

      Por favor, confirme, pois tenho o mesmo problema aqui no servidor godaddy também.
      E não consigo contatá-los há semanas.

      Não sei por que é tão difícil contatar a GoDaddy.

      • Akut Eu também uso GoDaddy.

        Encontrei meu arquivo php.ini no gerenciador de arquivos – pasta public_html, NÃO em php.admin, nem precisei criar o arquivo php.ini.

        A Godaddy parece pensar que é um problema do WP, e me deram muitas voltas sobre essa questão específica.

        Eles me direcionaram a aumentar meu limite de tamanho de arquivo. (Não é a mesma solução).

    • Esta solução foi a única que funcionou na plataforma de hospedagem 1and1:

      Criei uma página na minha pasta html .user.ini (ponto-user-ponto-ini). Nessa página adicionei o código:

      max_input_vars = 3000

    • Lou, à primeira vista (e primeiro teste) parece ter funcionado perfeitamente – obrigado!

      Atualizarei se encontrar mais problemas.

  11. Eu tive um problema ao adicionar um submenu no site do WordPress, ele se converte em link personalizado.
    Por favor, me ajude a resolver este erro

  12. apenas remova o wordpress; e vá para o magento, a melhor solução funcionou para mim depois de tentar por 2 meses, encontrei a melhor solução.

  13. No Ubuntu VPS, consegui corrigir isso descomentando e definindo valores mais altos como abaixo.

    max_input_nesting_levels = 500
    max_input_vars = 5000

    Mas de qualquer forma, obrigado, pois isso forneceu um caminho para a solução.

    • eu te amo cara!
      sua solução também resolveu outro problema meu! o problema era

      “Depois de salvar o menu na aba “Editar Menu”, a opção “Configurações do Menu -> Localização do Tema” não mantinha a marcação e na aba “Gerenciar Localizações”, a localização do menu era removida.”

    • Oi cara,
      Estou rodando o WordPress multisite e tenho alguns problemas para adicionar mais campos personalizados ao meu site, tentei de tudo e nada ajudou e vi sua resposta sobre aumentar o max_input_nesting_levels = 500. Estou tentando aumentar esse valor em um VPS com Ubuntu 16.04 no arquivo PHP.Ini, mas sem sucesso. O info.php ainda mostra max_input_nesting_levels = 64. Agradeço se puder me dizer como você aumentou esse valor, seja através do arquivo PHP.ini ou do arquivo htaccess?

      BR,

  14. Amigos da HostGator – Mesmo Problema & Isso Resolveu:

    1. Cpanel > Gerenciador de Arquivos

    2. public_html > wp-admin

    3. Clique em “Novo Arquivo” > nomeie-o como php.ini (se você ainda não tiver este arquivo)

    4. Clique em php.ini > clique em “editar” > clique em “editar” novamente

    5. Cole: max_input_vars=5000; > Salvar > FEITO

    • Olá,

      Meu site está hospedado na GoDaddy. Criei o php.ini em wp-admin e colei a única linha max_input_vars=5000;

      Ainda não consegui adicionar mais menus.

    • Obrigado pelas sugestões. Segui sua sugestão e adicionei o arquivo php.ini com max_input_vars=5000; e isso resolveu meu problema. Obrigado mais uma vez

    • 1 – Faça um arquivo de texto
      2 – Coloque isso nele " max_input_vars=5000; " (sem as aspas
      3 – Salve como php.ini
      4 – Conecte-se via FTP em public_html > wp-admin

      PERFEITO
      Obrigado!!!

    • Mesmo problema no meu site

      Meu site hospedado na HostGator. Adicionei o arquivo php.ini em /wp-admin, mas isso não está funcionando para mim. Por favor, me ajude.

  15. Estou tendo esse problema também. Fui direcionada para este site por um técnico da Studio Press. Tenho uma conta de hospedagem compartilhada com a Host Gator. Eles aumentaram meu max_input_vars para 7000, porque eu não estava chegando a lugar nenhum com 3000 ou 5000. Criei um php.ini com suas recomendações em meu wp-admin. Ainda sem sorte. Preciso deletar o php.ini na minha pasta pública, já que criei um em wp-admin? Estou tentando tanto resolver isso. Muito obrigada.

  16. Como estou em hospedagem compartilhada, colocar o php.ini na pasta raiz não funcionou para mim. Mas colocá-lo na pasta wp-admin funcionou. Acho que isso ocorre porque o arquivo nav-menus.php está na pasta wp-admin.

  17. Olá Pessoal, ... sim, eu também me deparei com este problema/questão do menu ... e posso dizer UAU!!! Em algum lugar entre 50 e 100 páginas, o último item que coloquei no menu estava sendo removido e/ou caindo da navegação principal do menu! O quê?!!!

    Novatos e outros geeks sabem disso (problema) ... e estou falando apenas do meu caso, embora o faça na esperança de que alguém que experimente o mesmo pesadelo possa se beneficiar ... então vamos lá.

    Com ‘hospedagem compartilhada’ usando HostGator… não haverá ‘suhosin’, que aparentemente é um patch/programa etc. para erros de script com php projetado para proteger ‘servidores’ de acordo com um representante da HostGator, … agora, apesar desse detalhe, continuamos… o que era importante no meu caso, … que finalmente fiz meu contato da HostGator, pessoa nº 3, entender, através de toda a minha divagação sobre o problema, foi a parte sobre ‘max_input_vars = 3000’.

    Meu representante da HostGator me colocou em espera, investigou o problema e determinou que o ‘max_input_vars = 3000’ precisava ser colocado no arquivo php.ini, … ao qual apenas a HostGator tem acesso, … não o arquivo php.ini que está em nosso diretório ‘home’ ou ‘root’, ao qual eu/nós todos temos acesso, através de nossas contas com a HostGator ou outros provedores de hospedagem, usando o CPanel, como costumamos chamar esse ponto de acesso.

    Este arquivo php.ini não é, de forma alguma, acessível pela internet por mim, ou por nós, como titulares de contas com acesso à conta de hospedagem, entendeu? Bom, e bom saber.

    Agora, o que eu fiz foi pegar o que Alex, logo abaixo desta postagem, disse para fazer, e coloquei essas linhas de texto/código em um arquivo php.ini que então coloquei na minha área de arquivos public_html, dentro da minha pasta ‘wp-admin’, para o domínio com o qual eu estava trabalhando. Por um tempo, pensei que esse ‘conserto’ estava funcionando, então hoje, eu estava adicionando mais páginas e ‘oh alegria’ os itens de navegação do menu principal estavam caindo da linha, caramba!!

    Voltei ao problema, revisei toda esta postagem e o tópico do ‘Coretrac Ticket’, que está um pouco acima do meu entendimento, mas ainda assim, fui diligente e determinado. E então voltei à luta com o pessoal da HostGator para a reunião nº 2, completei a chamada e tive que voltar, com a pessoa nº 3 que foi o encanto.

    Por último, o que aprendi é que o que ‘max_input_vars = 3000’ se refere é quantas páginas sua instalação/domínio/WordPress pode ter, o ‘3000’ significa páginas. Meu representante da HostGator inseriu 5000 páginas.

    Então, adicionei duas novas páginas de teste na hora com ele ainda ao telefone e relatamos 'alegria'! Yay! Eu também devo ser capaz de adicionar páginas à vontade! Que você também experimente a ALEGRIA do WordPress!

    Saúde,
    Gadget

    • O problema foi resolvido com o arquivo php.ini na pasta wp-admin com a seguinte linha em uma conta de hospedagem compartilhada da HostGator.

      max_input_vars = 9000;

      Obrigado

  18. Crie um arquivo php.ini, mas não na raiz! ( public_html )
    na pasta “wp-admin” e adicione:

    max_input_vars = 3000;

    Eu também tenho:
    upload_max_filesize = 70M;
    post_max_size = 128M;
    upload_tmp_dir = 70M;
    max_input_vars = 3000;
    memory_limit = 256M;

  19. Olá, obrigado por esta ótima dica! Tive o mesmo problema com o UberMenu. Agora adicionei php_value max_input_vars 5000 ao meu arquivo .htaccess e isso resolveu o problema.

  20. Tentei algumas coisas sem sucesso. Pedi ao meu provedor para fazer essas alterações de configuração do PHP. Também ativei o plugin Memory Bump e depois o removi, como sugerido por outros.

    Meu tema (Twenty Ten) suporta apenas um menu. Consigo criar outro menu e fazer alterações lá sem problemas. Tenho um site ativo, então estou um pouco limitado em termos da quantidade de experimentação que posso fazer.

    Alguma outra ideia? Tentarei qualquer coisa neste momento.

  21. A sugestão do Matt também funcionou para mim, pois não uso suhosin.

    adicionado:
    max_input_vars = 5000
    ao meu arquivo php.ini

  22. Tenho o mesmo problema, e o plugin Memory Bump não o resolveu.

    Contatei meu provedor de hospedagem, e eles disseram que eu ainda não tenho um arquivo php.ini e que tenho que criá-lo, ou o WP tem que criá-lo para mim...

    Como faço isso?

  23. Parece que uma solução simples seria a funcionalidade ajax do WP avaliar o número de itens na lista e dividi-lo em várias requisições sequenciais em vez de uma grande requisição.

    É estranho para mim que a equipe do WordPress não tenha pensado nisso com antecedência, mas acho que a plataforma é tão robusta que eles simplesmente têm muita coisa para fazer. Posso acabar fazendo isso sozinho, mas é claro que terei que fazer de uma forma que não seja sobrescrita por futuras atualizações. Que chato!

  24. Estou na mesma situação que Mat Lipe. Eu estava tendo problemas porque meu servidor não tem o suhosin instalado. Consegui corrigir o problema adicionando a diretiva que Mat postou ao meu arquivo php.ini. Obrigado.

  25. Eu acabei de ter o mesmo problema e depois de dias de e-mails trocados com o suporte da we hosting, finalmente foi resolvido!

    Eles fizeram as seguintes alterações:

    Eles adicionaram max_input_vars = 5000 em php.ini

    É isso, e agora funciona perfeitamente e estou adicionando páginas à vontade.

  26. Olá,

    Meu servidor não está executando o suhosin, então consegui corrigir esse problema adicionando isso ao meu arquivo php.ini e reiniciando meu servidor.

    max_input_vars = 5000

    Espero que isso ajude qualquer outra pessoa com o mesmo problema

Deixar uma resposta

Obrigado por escolher deixar um comentário. Por favor, tenha em mente que todos os comentários são moderados de acordo com nossa política de comentários, e seu endereço de e-mail NÃO será publicado. Por favor, NÃO use palavras-chave no campo do nome. Vamos ter uma conversa pessoal e significativa.