Por que quando eu envio um formulário no wordpress, ele carrega uma página 404, embora o URL esteja correto

16

Estou apenas criando um formulário de contato simples, mas percebo que ele parece postar em uma página inválida. A URL no navegador está correta, mas o título da página é "Página não encontrada"

no topo da página

$emailed = false;
if (isset($_POST['submit'])) {
    wp_mail('example@example.com', $_POST['subject'], $_POST['content']);
    $emailed = true;
}

abaixo ... o HTML:

<form action="<?php the_permalink(); ?>" method="post" id="contactform">
    <div class="formelem">
        <label for="name">Name</label>
        <input type="text" name="name" class="required" />
    </div>
    <div class="formelem">
        <label for="email">Email</label>
        <input type="text" name="email" class="required email" />
    </div>
    <div class="formelem">
        <label for="subject">Subject</label>
        <input type="text" name="subject" class="required" />
    </div>
    <div class="formelem">
        <label for="content">Content</label>
        <textarea name="content" cols="30" rows="10" class="required"></textarea>
    </div>

    <input type="submit" value="Submit Message" name="submit" value="submit" />
</form>
    
por JM at Work 11.03.2011 / 09:06

3 respostas

36

Eu posso estar errado, mas eu lembro vagamente que: nome, e-mail são sequestrados pelo WordPress para postar comentários, se você renomeou os elementos de formulário como nome de contato e e-mail de contato, você recebe o mesmo problema? / p>     

por Tom 11.03.2011 / 12:09
3

Não é só o problema name ou email , como o Tom escreveu. Eu tive problema mesmo com campo de entrada com atributo de nome mesmo como um dos meus tipos de postagem personalizada. Por exemplo:

...
<input type="text" name="movie">
...

E quando tiver registrado o "filme" do CPT em outro lugar, o envio do formulário terminará com o erro 404.

Conclusão: não use name , email e any registered custom post type handle como valor de atributo de nome de entrada em seus formulários.

    
por Marek 05.11.2014 / 13:32
1

Tente alterar name="email" para algo como name="my_theme_email" , faça o mesmo com todo o seu campo, parece que algum nome é reservado com o WordPress ao enviar dados de formulário. Eu peguei o mesmo problema e consertei assim.

    
por Thierry Edou 29.11.2016 / 09:26