¿Por qué cuando envío un formulario en WordPress carga una página 404 aunque la URL es correcta?


23

Solo estoy creando un formulario de contacto simple, pero noto que parece publicar en una página no válida. La url en el navegador es correcta pero el título de la página es "Página no encontrada"

en la parte superior de la página

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

a continuación ... el 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>

2
¿En qué URL se encuentra su página?
MikeSchinkel

El mismo problema aparece si usa suscripciones de WooCommerce y tiene un campo de entrada, llamado "suscripciones". Me llevó bastante tiempo descubrir qué está pasando y logré arreglarlo gracias a esta publicación. ¡Espero que alguien que usa suscripciones de WooCommerce y tenga un problema similar lo encuentre útil!
Whiplash

Respuestas:


49

Podría estar equivocado, pero recuerdo vagamente eso: nombre, correo electrónico es secuestrado por WordPress para publicar comentarios, si cambiaste el nombre de los elementos del formulario a nombre de contacto y contacto de correo electrónico, ¿tienes el mismo problema?


1
Sí, es el campo de nombre, el espacio de nombres es como jm_name en su lugar :)
Backie

Gracias tom! WP estaba secuestrando el formulario. Eso es extraño.
Svetoslav Marinov el

Esto también es cierto para AngularJS, en caso de que ayude. ;)
Marque el

Me enfrenté a este problema, esta respuesta me dirigió al camino correcto. No tenía ningún campo con nombre o correo electrónico, pero uno de los nombres de entrada era igual al tipo de publicación personalizada (cpt), por lo que estaba activando la consulta wp y 404. Así que cambié el nombre del campo para que fuera diferente de cpt, y solucionó el problema.
Mohsin

4

No es solo name o emailproblema, como escribió Tom. Tuve problemas incluso con el campo de entrada con el mismo atributo de nombre que uno de mis Tipos de publicaciones personalizadas. Por ejemplo:

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

Y cuando haya registrado una "película" de CPT en otro lugar, el envío de su formulario finalizará con un error 404.

Conclusión: no utilice name, emaily any registered custom post type handlecomo nombre de entrada, el valor del atributo en sus formularios.


Bueno, traté de responder la pregunta original con información más precisa. Ehm, probablemente ... :-) Agregando una pequeña edición.
Marek

1

Intente cambiar name="email"a algo como name="my_theme_email", haga lo mismo con todo su campo, parece que algunos nombres están reservados con WordPress al enviar datos del formulario. Tengo el mismo problema y lo solucioné así.


0

A mí me funciona, solo cambié tu

input type name, email, subject, and content to any name as names, emails, subjects, contents.

Funcionará. Gracias.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.