Como aumentar max_input_vars no WordPress
O que é o limite de max input vars?
A diretiva max_input_vars do PHP define quantas variáveis de entrada o servidor aceita em uma única requisição, somando campos de GET, POST e cookies. O padrão da maioria das hospedagens é 1000. No WordPress, telas como o editor de menus, painéis de opções de tema e formulários extensos podem enviar mais variáveis do que isso. Quando o total ultrapassa o limite, o PHP simplesmente ignora os campos excedentes, sem erro fatal: o WordPress salva só a parte que recebeu, e o restante some. Por isso o sintoma costuma ser silencioso e confuso.
Como identificar
- Um menu grande perde itens ao salvar: só os primeiros do total permanecem.
- Painéis de opções de tema ou plugin não gravam todas as configurações, voltando ao valor anterior.
- Formulários longos (Contact Form, WooCommerce com muitos atributos) gravam apenas parte dos campos.
- Aparece o aviso “Unable to load dynamic library” ou “input variables exceeded 1000” no debug.log do PHP.
Como prevenir
- Mantenha max_input_vars em pelo menos 3000 em sites com menus grandes ou WooCommerce
- Em painéis de opções extensos, salve por seções em vez de tudo de uma vez quando possível
- Após migrar de servidor, confira o max_input_vars na Saúde do Site, pois o padrão pode voltar a 1000
Causa
- max_input_vars do PHP em 1000 enquanto um menu do WordPress envia mais de mil variáveis ao salvar.
- Painel de opções de tema pesado, com dezenas de campos enviados de uma só vez na mesma requisição.
- Plugin de formulário com muitos campos, cada um virando uma variável de entrada no POST.
- Loja WooCommerce com produtos de muitos atributos ou variações, estourando o teto ao atualizar.
- Importação de configurações em massa, que envia centenas de variáveis numa única requisição.
Como resolver
- Confirme o limite atual: no wp-admin, vá em Ferramentas, Saúde do Site, Informações, Servidor e veja o valor de max_input_vars. Isso mostra de quantas variáveis você está partindo.
- Aumente o limite no php.ini: via FTP, edite (ou crie) o php.ini na raiz do site e suba o valor para 3000, folga suficiente para menus e formulários grandes:
max_input_vars = 3000 - Se não tiver acesso ao php.ini, use o .htaccess: em servidores Apache, adicione a diretiva ao .htaccess da raiz para forçar o novo limite:
php_value max_input_vars 3000 - Reinicie o PHP se for FPM: em hospedagens com PHP-FPM, a mudança no php.ini só vale após reiniciar o serviço. Use o painel da hospedagem para reiniciar o PHP ou peça ao suporte.
- Salve de novo e confira: volte ao menu ou formulário que perdia dados, salve outra vez e confirme que todos os itens permanecem. Se ainda cortar, suba o valor mais um pouco ou divida o conteúdo em partes.
; php.ini — eleva o numero maximo de variaveis de entrada por requisicao
; Padrao tipico = 1000; 3000 cobre menus extensos e formularios grandes
max_input_vars = 3000
; Sobe junto o limite de variaveis aninhadas, usado por campos em array
max_input_nesting_level = 128














