De ce când trimit un formular în WordPress se încarcă o pagină 404 deși URL-ul este corect
Creez un simplu formular de contact, dar observ că pare să transmită către o pagină invalidă. URL-ul din browser este corect dar titlul paginii este "Pagina nu a fost găsită"
în partea de sus a paginii
$emailed = false;
if (isset($_POST['submit'])) {
wp_mail('example@example.com', $_POST['subject'], $_POST['content']);
$emailed = true;
}
mai jos ... codul HTML:
<form action="<?php the_permalink(); ?>" method="post" id="contactform">
<div class="formelem">
<label for="name">Nume</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">Subiect</label>
<input type="text" name="subject" class="required" />
</div>
<div class="formelem">
<label for="content">Conținut</label>
<textarea name="content" cols="30" rows="10" class="required"></textarea>
</div>
<input type="submit" value="Trimite Mesaj" name="submit" value="submit" />
</form>

Da, este câmpul pentru nume, folosește un namespace precum jm_name în loc :)

Mulțumesc Tom! WP într-adevăr a preluat controlul formularului. Este ciudat.

Am întâmpinat această problemă, acest răspuns m-a îndreptat pe calea cea bună. Nu aveam niciun câmp cu numele sau emailul, dar unul dintre numele de input era identic cu un tip de postare personalizat (CPT), astfel încât declanșa interogarea wp și eroarea 404. Așadar, am schimbat numele câmpului pentru a-l face diferit de CPT și asta a rezolvat problema.

Groaznic, când folosești câmpul de input numit email, nu poți introduce date. Mulțumesc, m-ai ajutat.

Mulțumesc! Am avut aceeași problemă când am folosit numele s
pentru căutarea de text liber.

Nu este doar problema cu name
sau email
, cum a scris Tom. Am avut probleme chiar și cu un câmp de input care avea atributul name identic cu unul dintre tipurile mele de postări personalizate (Custom Post Types). De exemplu:
...
<input type="text" name="movie">
...
Și când aveți înregistrat un CPT "movie" în altă parte, trimiterea formularului dvs. se va încheia cu o eroare 404.
Concluzie: Nu folosiți name
, email
sau orice handle de tip de postare personalizată înregistrat
ca valoare a atributului name în formularele dumneavoastră.

Ei bine, am încercat să răspund la întrebarea originală cu informații mai precise. Hm, probabil... :-) Adăugând o mică editare.

De asemenea, numele de taxonomii personalizate nu sunt permise ca nume de input

Da, există o listă mare. Puteți găsi ajutor de aici: https://www.infinitypp.com/wordpress/easily-fix-wordpress-post-request-wont-return-return-404-form-submission/
