快速编辑关于lists:
如果你只是在谈论收集列表的电子邮件和其他信息,而这些人并不打算成为网站的用户,我会考虑将你的表单发布到处理列表的服务中。任何主要服务都会提供关于“托管您自己的注册表单”的教程。
在您的表单中action
属性将是它们提供的链接。
<form action="http://some-link-privided-by-sevice/" method="POST">
以及
name
输入字段的属性也将对应于其末端的一些值,因为它们的脚本将处理提交的数据。
<input type="text" name="the-name-they-want" value="" />
还需要一些隐藏字段来传递在其端生成的某种密钥。(服务Mailchimp中的一个示例):
<form action="http://mailchimp.us8.list-manage.com/subscribe/post" method="POST">
<input type="hidden" name="u" value="a123cd45678ef90g7h1j7k9lm">
<input type="hidden" name="id" value="ab2c468d10">
//your input fields
//submit button
</form>
通常获取表单数据如果将表单发布到您自己的函数中,您可以将这些输入字段作为$\\u POST数组的一部分进行访问:
if (isset ($_POST[\'u\'] ) ) {
//do stuff with set value
}
在wordpress中,您可以利用
wp_ajax_nopriv
用于向admin ajax发布表单时未登录的用户。php:
action="<?php echo admin_url(\'admin-ajax.php\'); ?>"
请参阅下面的链接教程,了解如何从前端发布,以使其适应您的需要。
其他数据收集
从表单中收集数据,从本质上讲,您是在谈论从网站前端发布的内容。类似于
this tutorial on posting from the frontend 应该会让你走上正确的方向。wp api也可以用于此目的(不确定该教程是否对此进行了介绍)。
Some more details and things to keep in mind:我不能谈论你提到的特定插件,但在将表单数据保存到wordpress数据库方面,有几件事需要考虑。最重要的是:Validating, Sanitizing, and Escaping 以及nonces
从前端保存表单条目就是创建一个新帖子,并将这些自定义字段添加到该帖子中(自定义字段只是帖子元键/值)。所以除了wp_insert_post
, 它将使用update_post_meta()
为了方便地从其他帖子中排除此类帖子,我通常将其降级到特定的custom post type 用于组织目的。