Form action URL unrecognized

时间:2013-02-17 作者:boomturn

我有一个以前在静态网站中使用的联系人表单,我想在WordPress中使用它。我意识到有很多插件,比如Contact Form 7,但我更愿意使用它,因为它很简单,我也很熟悉。基本上,在提交表单时,表单页面会转到第二个PHP页面进行post操作,呈现包含所有输入数据的确认说明,同时使用相同的数据发送HTML电子邮件。

平面HTML结构为:

examplesite.com/contact/page-contact.php = 表单页

examplesite.com/contact/confirmation/page-form-mail.php = 输出页面

这对于我的非CMS目的来说效果很好。为了适应WordPress,我将两者都设置为页面,并将所有表单PHP包含在各自的页面模板中。因此:

wpsite.com/contact – “Contact”page template=“page Contact.php”

wpsite.com/contact/confirmation – “确认”页面模板=“page form mail.php”

我的问题是在联系人表单的操作中引用确认页面文件,因此确认页面实际上在WordPress中工作。

当独立加载确认页面URL时,输出框架(无数据)将在WordPress中正确显示。但硬编码实际目录路径或使用其他WP方法生成相同的路径(即。,action=“http://wpsite.com/contact/confirmation/” ) 生成空白输出–我假设是因为PHP引用的是目录而不是模板文件,即使确认页面是使用模板设置的。

或者,可以通过以下方式直接引用确认输出页面:

action="<?php bloginfo(\'stylesheet_directory\'); ?>/page-form-mail.php"
这是功能性的(它输出数据并通过电子邮件发送数据),但不再包含在WordPress中,当然还公开了完整的模板URL路径:

http://wpsite.com/wp-content/themes/wpsite-theme/page-form-mail.php
看来我错过了一些基本的东西。如何在表单操作中引用实际的确认php文件,并将其保持在WP中?

谢谢你的建议!

注意:最初,我使用“name”作为表单变量之一,直到我意识到这是WP的内部结构之一,所以我自定义了所有变量的前缀,但它仍然不起作用。(在这里阅读其他形式的问题时,这似乎是一个常见的问题!)

1 个回复
最合适的回答,由SO网友:Eugene Manuilov 整理而成

我想推荐你阅读The Rewrite API: The Basics 文章尤其要注意Add Custom Endpoint 您可以找到如何创建所需内容的部分。

结束

相关推荐

Adding Custom Forms

我正在寻找创建一个婚礼网站,将有一个表单页面。其想法是,这是一个RSVP页面,访客将输入他们收到的邀请上的唯一字符串,并将他们带到另一个页面,该页面将包含信息(出席人数、客人数量等),然后将其存储在数据库中,这样我就有了一个完整的客人列表,可以用于以后的用途。我还不太熟悉Wordpress,那么有什么最简单的方法可以让页面包含表单,并且第二个输入页面不会显示在导航中?我应该能够编写php和形成html没有太多的麻烦,只是需要一个起点。