在插件中处理表单张贴的最佳方式

时间:2013-11-28 作者:Daniel Setréus

我正在做一个插件,需要能够将数据发布到第三方API。用户将填写表格并按提交。

表单本身-使用\\u content()过滤器简单地将html附加到页面内容中是否“正确”?我根据一系列设置添加表单,并将每个页面或帖子另存为meta。我想避免篡改模板。。。

其他词语;如果为页面设置了一些元数据,请附加一些html(用户将向其中输入数据的表单)。

此外,当用户在该表单中按“提交”时,我应该如何处理该请求?现在我在想,我将把wordpress加载到一个完全独立的php文件中(以便掌握所有那些时髦的wp函数和常量),但这感觉有点不对。。。

是否有一种内置方式既可以显示表单,又可以处理请求?

非常感谢!

1 个回复
SO网友:Daniel Setréus

好吧,我终于找到了一种方法,我相信这可以被视为一种最佳实践。。。

我想在WP前端的表单中发布jQuery。比我想象的要容易得多。

首先,确保您有javascript来捕获表单事件(当用户按下提交按钮时)。将表单发布到wordpress文件admin ajax。php-使用以下方法找到:

admin_url(\'admin-ajax.php\')
而且-这很重要-确保在post请求中添加一个名为“action”的参数。“action”的值将用于命名将用作回调(或表单处理程序)的wp函数。

假设您为action参数指定了一个值“my\\u callback”。然后创建两个操作:

add_action( \'wp_ajax_my_callback\', \'my_callback_function\' );
add_action( \'wp_ajax_nopriv_my_callback\', \'my_callback_function\' );
然后-只需创建函数my\\u callback\\u function()-就可以自由使用其中的任何$\\u POST数据。

您在该函数中呼出的内容将返回到初始jQuery请求

结束

相关推荐

Forms and WordPress Nonce

WordPress nonce快把我逼疯了!当我启动插件并删除它时,我遇到了这个问题,但现在我又回来了,仍然不知道该怎么办。我到处寻找解决办法。我的代码与其他示例相同/相似。我得到一个“未定义索引‘mrlpt\\u client\\u check’”错误。在基于用户功能检查权限时,我也会遇到与“mrlpt\\U客户端”相同的错误,但这是我创建的自定义帖子类型,所以我不确定为什么这也不起作用?这是nonce元素所在的代码。include只是在一个自定义元框中包含一个简短的表单,其中有两个输入字段,一个用于电