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.
Svetoslav Marinov
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.
Muhammad Asad
Terribile, quando si usa il nome del campo di input 'email' non è possibile inserire i dati. Grazie, mi hai aiutato
Arman H
Grazie! Avevo lo stesso problema quando usavo il nome s per la ricerca a testo libero.
Punchlinern
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.
Marek
Inoltre, i nomi delle tassonomie personalizzate non sono consentiti come nomi di input
Marc
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/
MD. Shafayatul Haque