Je suis en train de créer un simple formulaire de contact, mais je remarque qu'il semble publier sur une page invalide. L'URL dans le navigateur est correcte mais le titre de la page est "Page non trouvée"
en haut de la page
$emailed = false;
if (isset($_POST['submit'])) {
wp_mail('[email protected]', $_POST['subject'], $_POST['content']);
$emailed = true;
}
ci-dessous ... le 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>
theme-development
forms
404-error
JM au travail
la source
la source
Réponses:
Je peux me tromper, mais je me souviens vaguement que: le nom, l'e-mail sont détournés par WordPress pour publier des commentaires, si vous avez renommé les éléments du formulaire en contact-name et contact-email, obtenez-vous le même problème?
la source
Ce n'est pas seulement
name
unemail
problème, comme l'a écrit Tom. J'ai eu un problème même avec le champ de saisie avec l'attribut de nom identique à l'un de mes types de publication personnalisés. Par exemple:Et lorsque vous aurez enregistré un "film" CPT ailleurs, votre soumission de formulaire se terminera avec une erreur 404.
Conclusion: Ne pas utiliser
name
,email
etany registered custom post type handle
que le nom d'entrée valeur d'attribut dans vos formulaires.la source
Essayez de changer
name="email"
pour quelque chose commename="my_theme_email"
, faites la même chose avec tout votre champ, il semble qu'un nom soit réservé avec WordPress lors de l'envoi des données du formulaire. J'ai eu le même problème et je l'ai résolu comme ça.la source
Cela fonctionne pour moi, juste changé votre
Ça va marcher. Merci.
la source