¿Por qué cuando envío un formulario en WordPress carga una página 404 aunque la URL sea correcta?
Estoy creando un simple formulario de contacto, 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('ejemplo@ejemplo.com', $_POST['subject'], $_POST['content']);
$emailed = true;
}
abajo ... el HTML:
<form action="<?php the_permalink(); ?>" method="post" id="contactform">
<div class="formelem">
<label for="name">Nombre</label>
<input type="text" name="name" class="required" />
</div>
<div class="formelem">
<label for="email">Correo electrónico</label>
<input type="text" name="email" class="required email" />
</div>
<div class="formelem">
<label for="subject">Asunto</label>
<input type="text" name="subject" class="required" />
</div>
<div class="formelem">
<label for="content">Contenido</label>
<textarea name="content" cols="30" rows="10" class="required"></textarea>
</div>
<input type="submit" value="Enviar Mensaje" name="submit" value="submit" />
</form>

¡Gracias Tom! WP estaba efectivamente secuestrando el formulario. Eso es extraño.

Enfrenté este problema, esta respuesta me dirigió por el camino correcto. No tenía un campo con nombre o email, pero uno de los nombres de entrada era igual al tipo de publicación personalizada (CPT) por lo que estaba activando la consulta de wp y el error 404. Así que cambié el nombre del campo para que fuera diferente al CPT, y eso solucionó el problema.

Horrible, cuando se usa el nombre del campo de entrada como email no se puede insertar datos. Gracias, me ayudó.

¡Gracias! Tuve el mismo problema al usar el nombre s
para la búsqueda de texto libre.

No es solo un problema con name
o email
, como escribió Tom. Yo tuve problemas incluso con un campo de entrada cuyo atributo name coincidía con uno de mis Tipos de Entradas Personalizados (CPT). Por ejemplo:
...
<input type="text" name="movie">
...
Y al tener registrado un CPT llamado "movie" en otro lugar, el envío de tu formulario terminará con un error 404.
Conclusión: No uses name
, email
ni ningún handle de tipo de entrada personalizado registrado
como valor del atributo name en tus formularios.

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

Además, los nombres de taxonomías personalizadas no están permitidos como nombres de entrada

Sí, hay una gran lista. Puedes encontrar ayuda aquí: https://www.infinitypp.com/wordpress/easily-fix-wordpress-post-request-wont-return-return-404-form-submission/
