我有一个以前在静态网站中使用的联系人表单,我想在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的内部结构之一,所以我自定义了所有变量的前缀,但它仍然不起作用。(在这里阅读其他形式的问题时,这似乎是一个常见的问题!)