Perché quando invio un modulo in wordpress carica una pagina 404 sebbene l'URL sia corretto


23

Sto solo creando un semplice modulo di contatto, ma noto che sembra pubblicare su 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;
}

sotto ... l'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
Quale URL si trova la tua pagina?
MikeSchinkel,

Lo stesso problema si presenta se si utilizzano gli abbonamenti WooCommerce e si dispone di un campo di input, denominato "abbonamenti". Mi ci è voluto molto tempo per capire cosa stava succedendo e sono riuscito a risolverlo grazie a questo post. Spero che qualcuno che utilizza Abbonamenti WooCommerce e abbia un problema simile lo trovi utile!
Whiplash

Risposte:


49

Potrei sbagliarmi, ma ricordo vagamente che: nome, e-mail vengono dirottati da WordPress per pubblicare commenti, se hai rinominato gli elementi del modulo come nome-contatto ed e-mail di contatto, hai lo stesso problema?


1
Sì, è il campo del nome, invece lo spazio dei nomi come jm_name :)
Backie

Grazie Tom! Il WP stava davvero dirottando il modulo. È strano.
Svetoslav Marinov,

Questo vale anche per AngularJS, nel caso in cui ciò aiuti. ;)
Segna il

Ho affrontato questo problema, questa risposta mi ha indirizzato sulla strada giusta. Non avevo un campo con nome o e-mail, ma uno di nome di input era uguale al tipo di post personalizzato (cpt), quindi stava innescando la query wp e 404. Quindi ho cambiato il nome del campo per renderlo diverso da cpt e risolto il problema.
Mohsin,

4

Non è solo name o un emailproblema, come ha scritto Tom. Ho avuto problemi anche con il campo di input con l'attributo name uguale a uno dei miei tipi di post personalizzati. Per esempio:

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

E dopo aver registrato il "film" CPT da qualche altra parte, l'invio del modulo terminerà con un errore 404.

Conclusione: non si usa name, emaile any registered custom post type handlecome nome dell'ingresso valore dell'attributo nei moduli.


Bene, ho provato a rispondere alla domanda originale con informazioni più accurate. Ehm, probabilmente ... :-) Aggiunta di una piccola modifica.
Marek,

1

Prova a passare name="email"a qualcosa di simile name="my_theme_email", fai lo stesso con tutto il tuo campo sembra che alcuni nomi siano riservati con WordPress quando invii i dati del modulo. Ho avuto lo stesso problema e l'ho risolto in quel modo.


0

Per me funziona, ho appena cambiato il tuo

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

Funzionerà. Grazie.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.