WordPress:通过ajax调用插件php文件
我写了一个wordpress插件女巫在我的模板中添加了一些评论function。 通过ajax,所有的东西都应该传输到wordpress数据库。
问题是 – ajax处理程序需要一个php文件来捕获查询
if(isset($_POST['name'], $_POST['title'], $_POST['description'])) { // do something with wordpress actions, eg get_current_user, $wpdb }
在用户发送查询时,ajax处理程序调用php文件,如下所示:
$('#ajax_form').bind('submit', function() { var form = $('#ajax_form'); var data = form.serialize(); $.post('../wp-content/plugins/test/getvars.php', data, function(response) { alert(response); }); return false;
getvars.php不知道wordpress环境,因为它是直接从用户提交调用的,我认为添加wordpress环境类并包含不是好的风格。
还有别的办法吗? 感谢你的支持。
是的使用builtin wordpress ajax动作:
你的jquery看起来像这样:
$('#ajax_form').bind('submit', function() { var form = $('#ajax_form'); var data = form.serialize(); data.action = 'MyPlugin_GetVars' $.post('/wp-admin/admin-ajax.php', data, function(response) { alert(response); }); return false;
你的插件代码如下:
add_action("wp_ajax_MyPlugin_GetVars", "MyPlugin_GetVars"); add_action("wp_ajax_nopriv_MyPlugin_GetVars", "MyPlugin_GetVars"); function MyPlugin_GetVars(){ global $wpdb; // use $wpdb to do your inserting //Do your ajax stuff here // You could do include('/wp-content/plugins/test/getvars.php') but you should // just avoid that and move the code into this function }
- ASP.NET MVC使用jQuery ajax渲染局部视图
- 如何从PhoneGap / webapp将文件ftp到服务器?
- 使用jQuery ajax表单提交
- 如何使用CORS Pre-flight请求处理自定义标头? AJAX – CodeIgniter
- jQuery流程表单
- 在向下滚动如何进行ajax调用并获取respone数据
- cakephp 2.3 ajax表单提交
- jQuery AJAX和ASP.NET Web服务:不能通过ajax脚本使用asmx web服务
- Selenium Webdriver – 等待页面完全加载Java和JavaScript(ajax / jquery / animation等)