Perché quando invio un modulo in WordPress viene caricata una pagina 404 anche se l'URL è corretto
Sto creando un semplice modulo di contatto, ma noto che sembra inviare i dati a una pagina non valida. L'URL nel browser è corretto ma il titolo della pagina è "Pagina non trovata"
nella parte superiore della pagina
$emailed = false;
if (isset($_POST['submit'])) {
wp_mail('example@example.com', $_POST['subject'], $_POST['content']);
$emailed = true;
}
qui sotto... l'HTML:
<form action="<?php the_permalink(); ?>" method="post" id="contactform">
<div class="formelem">
<label for="name">Nome</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">Oggetto</label>
<input type="text" name="subject" class="required" />
</div>
<div class="formelem">
<label for="content">Contenuto</label>
<textarea name="content" cols="30" rows="10" class="required"></textarea>
</div>
<input type="submit" value="Invia Messaggio" name="submit" value="submit" />
</form>

Grazie Tom! WP stava effettivamente dirottando il form. Strano.

Mi sono imbattuto in questo problema, questa risposta mi ha indirizzato sulla strada giusta. Non avevo un campo con nome o email, ma uno degli input aveva un nome uguale a un custom post type (cpt) quindi attivava la query di wp e dava 404. Quindi ho cambiato il nome del campo per renderlo diverso dal cpt, e questo ha risolto il problema.

Terribile, quando si usa il nome del campo di input 'email' non è possibile inserire i dati. Grazie, mi hai aiutato

Grazie! Avevo lo stesso problema quando usavo il nome s
per la ricerca a testo libero.

Non è solo un problema di name
o email
, come ha scritto Tom. Ho avuto problemi anche con campi input che avevano l'attributo name uguale a uno dei miei Custom Post Types. Per esempio:
...
<input type="text" name="movie">
...
E quando hai registrato un CPT "movie" da qualche altra parte, l'invio del tuo form si concluderà con un errore 404.
Conclusione: Non usare name
, email
e qualsiasi handle di custom post type registrato
come valore dell'attributo name nei tuoi form.

Bene, ho cercato di rispondere alla domanda originale con informazioni più accurate. Ehm, probabilmente... :-) Aggiungendo una piccola modifica.

Inoltre, i nomi delle tassonomie personalizzate non sono consentiti come nomi di input

Sì, c'è un lungo elenco. Puoi trovare aiuto da qui: https://www.infinitypp.com/wordpress/easily-fix-wordpress-post-request-wont-return-return-404-form-submission/
