为什么当我在wordpress中提交表单时,尽管URL正确,但它会加载404页面


23

我只是在创建一个简单的联系表,但我注意到它似乎发布到了无效的页面上。浏览器中的网址正确,但页面标题为“找不到页面”

在页面顶部

$emailed = false;
if (isset($_POST['submit'])) {
    wp_mail('example@example.com', $_POST['subject'], $_POST['content']);
    $emailed = true;
}

下面... 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
您的页面位于哪个URL?
MikeSchinkel

如果您使用WooCommerce订阅并且具有名为“订阅”的输入字段,则会出现相同的问题。我花了很长时间才弄清楚发生了什么,由于这篇文章,我设法解决了它。希望有人使用WooCommerce订阅并且遇到类似问题对您有所帮助!
Whiplash

Answers:


49

我可能是错的,但我隐约记得:名称,电子邮件被WordPress劫持以发表评论,如果将表单元素重命名为contact-name和contact-email,是否会遇到相同的问题?


1
是的,它是名称字段,而是像jm_name一样命名空间:)
Backie 2011年

谢谢汤姆!WP确实在劫持表格。那很奇怪。
Svetoslav Marinov

如果有帮助,AngularJS也是如此。;)
标记

我遇到了这个问题,这个答案将我引向了正确的道路。我没有名称或电子邮件的字段,但是输入名称之一等于自定义帖子类型(cpt),因此它触发了wp查询和404。因此,我更改了字段名称以使其不同于cpt,并修复了问题。
莫欣

4

正如汤姆所写,这不仅是问题,name 还是email问题。即使输入名称属性与我的自定义帖子类型之一相同的输入字段,我也遇到问题。例如:

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

并且在其他地方注册了CPT“电影”后,您的表单提交将以404错误结束。

结论:不要使用nameemailany registered custom post type handle为您的形式输入名称的属性值。


好吧,我试图用更准确的信息回答原始问题。嗯,大概... :-)添加一些编辑。
Marek 2014年

1

尝试更改name="email"name="my_theme_email",对您的所有字段进行相同的操作,这听起来像在发送表单数据时WordPress保留了一些名称。我遇到了同样的问题,并像这样解决了。


0

它对我有效,只是改变了您的

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

会的。谢谢。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.