Custom form action hook

时间:2014-08-29 作者:Jan Richter

我正在写一个简单的新闻稿订阅插件。我用表单创建了一个小部件:

echo \'<form action="\'.home_url().\'" method="post" name="subscriber_form">\';
echo \'<p><input type="email" name="subscriber_mail" value="" placeholder="\'.__(\'Enter your email\',\'my-text-domain\').\'" required /></p>\';
echo \'<input type="submit" name="subscriber_send" value="\'.__(\'Subscribe\',\'my-text-domain\').\'" class="Buttons">\';
echo \'</form>\';
我可以直接将操作指定给文件来处理表单,但我需要加载wordpress。

是否有一个钩子(如ajax)可以将表单指向,或者是否有一种方法可以在插件中正确启动wordpress实例?

感谢您的反馈。

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

admin_url( \'admin-post.php\' ) 是的非ajax版本admin_url( \'admin-ajax.php\' )

类似admin-ajax.php 它将触发四个挂钩中的一个:

Logged out users

  • admin_post_nopriv_{action} ($_REQUEST[\'action\'] 指定)
  • admin_post_nopriv (no $_REQUEST[\'action\'] 指定)
Logged in user

  • admin_post_{action} ($_REQUEST[\'action\'] 指定)
  • admin_post (no $_REQUEST[\'action\'] 指定)
因此,可以将“操作”指定为目标url的一部分(例如。admin_url( \'admin-ajax.php?action=my-action\' )) 或与所有其他数据一起发布。

这样做的缺点是,如果需要将用户返回表单(例如由于错误),则需要重定向用户,因此浏览器会丢失用户输入的数据。这是糟糕的用户体验,所以我很少使用它。

结束

相关推荐

Link Forms on Wordpress

在我们的Wordpress网站上,我们有一个由一系列(单选按钮式)问题组成的表单。根据用户对特定问题的回答,我们希望向用户显示不同的表单。也就是说,我们希望将多个表单链接到一个主表单。这可能吗?如果是这样的话,有人能解释一下如何做到这一点,或者给我指一些可能有用的资源吗?我对Wordpress很陌生。