Aumentar o limite de PHP max_input_vars no WordPress

Resumo: Adicione php_value max_input_vars 3000 ao .htaccess, defina max_input_vars = 3000 no php.ini ou adicione @ini_set('max_input_vars', 3000); ao wp-config.php. Escolha o método que corresponde ao seu ambiente de hospedagem — veja a tabela abaixo.

A diretiva max_input_vars foi introduzida no PHP como uma medida de segurança que limita o número máximo de variáveis POST que o servidor processa por requisição. Quando uma página do WordPress envia mais variáveis do que o limite permite, o servidor descarta silenciosamente o excesso — fazendo os menus perderem itens, as configurações do tema desaparecerem e as páginas de configuração de plugins falharem ao salvar.

Nos tickets de suporte da WP STAGING, o gatilho mais comum é um site com WooCommerce ou WPML com uma página de configurações grande que descarta campos silenciosamente ao salvar.

Aumentar max_input_vars para 3000 ou mais resolve esses sintomas na maioria dos casos. O método certo depende do seu ambiente de hospedagem. Se não tiver certeza de qual se aplica, entre em contato com o seu provedor de hospedagem antes de editar arquivos de configuração do servidor — nem todas as hospedagens compartilhadas concedem permissão para cada um dos métodos abaixo.

Qual método você deve usar?

Tipo de hospedagem Método recomendado Observações
cPanel compartilhado (Apache) Editar .htaccess Não requer reinício do servidor
Hospedagem compartilhada (nginx) php.ini ou painel do host O método varia conforme o provedor
WordPress gerenciado (WP Engine, Kinsta, etc.) Painel de controle do host ou suporte A edição direta de arquivos pode ser restrita
VPS ou servidor dedicado com SSH Editar o php.ini global Reinicie o PHP-FPM após salvar
Gerenciado na nuvem (Cloudways, SpinupWP, etc.) Painel de controle do host Cada provedor expõe a própria interface de configurações

Se o seu host não suportar nenhum dos métodos baseados em arquivo abaixo, abra um ticket de suporte — aumentar max_input_vars é uma solicitação rotineira.

Como aumentar o limite de PHP Max Input Vars

Os três métodos mais comuns são editar .htaccess, php.ini ou wp-config.php. Experimente-os na ordem que corresponde ao seu ambiente de hospedagem; passe ao próximo apenas se o primeiro não surtir efeito.

Método 1: Editar o arquivo .htaccess

O arquivo .htaccess está no diretório raiz da sua instalação do WordPress. Abra-o com o seu gerenciador de arquivos ou cliente FTP.

Aumentar Max Input Vars no .htaccess

Se você não conseguir localizar o arquivo, a maioria dos gerenciadores de arquivos de hospedagem oculta os dotfiles por padrão. Procure uma opção Mostrar arquivos ocultos e ative-a.

Abra o .htaccess em um editor de texto e adicione a seguinte linha:

php_value max_input_vars 3000
adicionar código no htaccess

Se o seu servidor usa a extensão de segurança Suhosin, use estas linhas em vez disso:

php_value suhosin.request.max_vars 3000
php_value suhosin.post.max_vars 3000

Um valor de 3000 cobre a maioria das instalações do WordPress com menus grandes ou páginas de configurações de plugins complexas. Aumente-o ainda mais apenas se os sintomas persistirem após salvar.

Método 2: Editar o arquivo php.ini

O arquivo php.ini também está no diretório raiz da sua instalação do WordPress. Se não existir nenhum ali, crie um vazio.

Arquivo php.ini

Abra o arquivo em um editor de texto e adicione ou atualize esta linha:

max_input_vars = 3000
adicionar código no arquivo php.ini

Salve o arquivo. Se você tiver acesso por shell, reinicie o PHP-FPM ou o Apache para que o valor surta efeito de imediato. Em hospedagens compartilhadas, a próxima requisição PHP recebe o novo ajuste automaticamente.

Método 3: Editar o arquivo wp-config.php

Faça login no seu painel de hospedagem ou cliente FTP e navegue até o Gerenciador de Arquivos. Abra o wp-config.php na raiz da sua instalação do WordPress.

ver o arquivo wp-config

Adicione a seguinte linha antes da linha que diz /* That's all, stop editing! */:

@ini_set( 'max_input_vars', 3000 );
adicionar código no arquivo wp-config.php

Salve o arquivo. Esse método define o limite em tempo de execução do PHP e funciona em ambientes de hospedagem compartilhada onde você não pode modificar .htaccess ou php.ini diretamente. Você pode substituir 3000 por qualquer valor que o seu site exija — recomendamos 3000 ou mais para cobrir páginas de administração complexas.

Nota sobre sistemas legados: hospedagem com PHP 5

O PHP 5 chegou ao fim de vida em dezembro de 2018. Se o seu host ainda executa o PHP 5, a abordagem do php.ini acima se aplica, mas você também pode precisar criar arquivos php5.ini e user.ini no mesmo diretório com a mesma diretiva:

max_input_vars = 3000

Entre em contato com o seu host imediatamente para atualizar — os servidores com PHP 5 não recebem mais correções de segurança. As diretivas da extensão Suhosin (suhosin.get.max_vars, suhosin.post.max_vars, suhosin.request.max_vars) só são relevantes em servidores com o Suhosin instalado; os servidores modernos com PHP 8.x não as exigem.

O que fazer se a solução não funcionar

Se os métodos acima não resolveram o problema, percorra estas verificações antes de contatar o seu host.

A alteração não persistiu após salvar. O painel de controle do seu host pode incluir um php.ini mestre que sobrescreve qualquer arquivo local que você crie. Abra o painel de configuração do PHP do seu host (no cPanel: Software → Selecionar versão do PHP → Opções) e defina max_input_vars ali diretamente.

O valor está definido mas os sintomas permanecem. Outra diretiva do PHP pode ser o verdadeiro gargalo. Crie um arquivo temporário na raiz do seu site contendo <?php phpinfo(); ?>, abra-o em um navegador e procure por max_input_vars para confirmar que o novo valor está ativo. Verifique também post_max_size — se ele for menor do que os dados que a sua página de configurações envia, aumentar apenas max_input_vars não resolverá o problema.

O phpinfo() não mostra o novo valor. O PHP pode carregar vários arquivos de configuração. A saída do phpinfo() mostra Configuration File (php.ini) Path — confirme que você editou o arquivo listado ali. Em servidores cPanel, o php.ini ativo costuma estar no diretório home do usuário, não na raiz web do WordPress.

A abordagem do wp-config.php não surte efeito. Algumas configurações de servidor desativam o ini_set() por meio da diretiva disable_functions. Nesse caso, use o método do .htaccess ou do php.ini em vez disso.

Para obter ajuda com um limite de configuração do PHP relacionado, consulte limite de memória do PHP no WordPress.

A especificação oficial dessa diretiva está no manual do PHP: max_input_vars.

Conclusão

Aumentar max_input_vars é uma alteração de configuração de uma única linha, mas escolher o arquivo certo importa: .htaccess para hosts Apache compartilhados, php.ini para ambientes VPS, wp-config.php quando você não pode modificar os arquivos de configuração do servidor. Se a alteração não pegar, é provável que a configuração mestra do seu host esteja sobrescrevendo-a — os passos de solução de problemas acima cobrem as causas mais comuns.

Faça sempre um backup do seu site antes de editar arquivos de configuração do servidor. Se precisar de ajuda adicional, a nossa equipe de suporte pode ajudar.

Artigos relacionados:

Rene Hermenau

Autor: Rene Hermenau

Sobre o autor: René Hermenau é o fundador do WP STAGING. Ele trabalha com backups do WordPress, ambientes de staging, migrações, gestão de bases de dados e fluxos de implantação seguros.