Estou com um problema na minha página. Estou tentando criar uma página "Entre em contato". Está funcionando perfeitamente bem em termos de design. Mas quando tento enviar o formulário para a mesma página que a origem. Retorna erro 404.
Isso só acontece quando estou enviando o formulário. Eu tentei ambos com solicitações GET e POST. Nada parece funcionar.
Eu até comentei a parte do PHPMailer. É causado inteiramente pelas variáveis extras.
Se isso ajudar, eles são "nome", "email" e "mensagem".
$_POST
os dados realmente não devem afetar se a página é encontrada ou não.Respostas:
Prefixe tudo , especialmente suas variáveis. Os nomes que você está usando são usados internamente pelo WordPress (consulte o formulário de comentários); portanto, o WordPress pode tentar fazer algo com os valores do formulário. Se isso falhar, você receberá um erro.
Embora os
$_GET
problemas sejam geralmente fáceis de depurar,$_POST
e os$_REQUEST
nomes não sejam tão simples.A lista a seguir provavelmente não está completa. Mas sua extensão nua nos diz uma lição:
Evite qualquer nome que você possa encontrar em um dicionário. Prefixe seus nomes de formulário.
Lista de nomes reservados
$_POST
e$_REQUEST
usados pelo WordPress 3.5Esses nomes podem ter efeitos colaterais quando usados em temas ou plugins. Alguns são usados apenas em páginas específicas (
removeheader
), outros em várias páginas ou solicitações. Evite todos eles, se puder.Nomes de variáveis
fonte
Como alternativa, você pode publicá-lo no WP e manipular o processamento em functions.php.
Para o formulário:
E inclua uma entrada oculta que informe ao WP qual é a função com a qual você a processará:
Escreva a função em functions.php:
Diga ao WP qual é a função:
fonte