为什么当我在WordPress中提交表单时,它加载了一个404页面,尽管URL是正确的

时间:2011-03-11 作者:JM at Work

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

在页面顶部

$emailed = false;
if (isset($_POST[\'submit\'])) {
    wp_mail(\'[email protected]\', $_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>

5 个回复
最合适的回答,由SO网友:Tom 整理而成

我可能错了,但我模糊地记得:name,email被WordPress劫持做帖子评论,如果你将表单元素重命名为contact name和contact email,你会遇到同样的问题吗?

SO网友:Marek

这不仅仅是nameemail 问题,正如汤姆所写。我甚至对name属性与我的一个自定义帖子类型相同的输入字段也有问题。例如:

...
<input type="text" name="movie">
...
当您在其他地方注册了CPT“movie”时,您的表单提交将以404错误结束。

结论:不要使用name, emailany registered custom post type handle 作为表单中的输入名称属性值。

SO网友:Thierry Edou

尝试更改name="email" 大概是name="my_theme_email", 对所有字段执行同样的操作。在发送表单数据时,WordPress似乎保留了一些名称。我遇到了同样的问题,我就这样解决了。

SO网友:Y. Joy Ch. Singha

这对我有用,只是改变了你的

input type name, email, subject, and content to any name as names, emails, subjects, contents.
它会起作用的。谢谢

SO网友:Salman Patni

此外,您不能将年份用作字段的名称。

结束

相关推荐

找不到cForms操作处理程序页

我在任何地方都找不到cforms插件的操作处理程序页面。我想使用post值在cforms插件的action handler页面中编写一些函数。