小心灵学院
欢迎您的光临

使用jQuery为WordPress插件开发人员简化Ajax

我假设你知道如何编写WordPress插件,现在你想知道如何使用AJAX添加炫酷的功能,这会让你的插件看起来有点酷。

对于我的akWpUploder插件,我也面临着同样的问题。我搜索了一下,但找不到任何有趣的东西,或者应该说,将Ajax添加到我的插件的简单方法。所以我深入研究了WordPress代码库以寻求解决方案,因为WordPress的自动保存功能就是我想要使用的功能之一。

在那里我找到了我真正想要的东西,一种使用Ajax完成任务的非常简单的方法。

问题:在使用AJAX时如何在插件中使用WordPress函数

让我先解释一下这个问题,当我在开发插件时,我需要将照片数据插入到数据库中。要做到这一点,我需要使用wordpress数据库函数,但是按照我所知道的使用ajax的方式(即创建一个单独的php文件来处理ajax请求),这有点困难和混乱。它需要与数据库建立直接连接,或者包括WordPress配置文件。

我对这两个选项都不满意,我需要一个更简单的解决方案。

解决方案:admin-ajax.php和action hook wp_ajax_

正如我前面提到的,我深入WordPress,看看WP是如何使用Ajax来保存帖子的。

我找到的是这个代码。

  1. default :
  2. do_action( ‘wp_ajax_’ . $_POST[‘action’] );
  3. die(‘0’);

所以,现在我需要做的就是将我所有的Ajax请求发送到admin-ajax.php,提供一个‘action’,WordPress将调用附加到该钩子的函数。

很整洁,不是吗?现在我可以让我的插件变得简单了。

实施:示例

你可能会想“没关系,但你能给我举个例子吗?”

好的,我当然会的。

首先我们关注javascript,这里我使用的是jQuery,它是可用的最简单的javascript库。

  1. <?php
  2. echo‘<script src=”‘.get_option(‘siteurl’). ‘/wp-content/plugins/jquery-1.2.3.min.js”> </script>’;
  • 现在Ajax请求的代码:它们是需要注意的两件事。
    • “action”,它包含与“wp_ajax_”一起使用以创建WordPress挂钩的值。
    • 另一个是“cookie”,它包含验证你对admin-ajax.php的管理员访问权限所需的cookie。
  1. <script>
  2. $.post(siteurl+“/wp-admin/admin-ajax.php”, {action:“ak_attach”, ‘cookie’: encodeURIComponent(document.cookie)},
  3. function(str)
  4. {
  5. alert(str);
  6. });
  7.  
  8. </script>

至此,事情的javascript部分就结束了。

现在,我们将在插件中处理此请求。

  • 因此,首先我们将创建响应Ajax请求的函数。你应该注意到,我在末尾使用了exit ,这是因为我希望脚本在这里结束,否则我的数据将为‘0’。
  1. <?php
  2. function ajaxResponse(){
  3. global $wpdb; global $userdata;
  4. get_currentuserinfo();
  5. echo “Hello “. $userdata->user_login;
  6. exit;
  7. }
  • 现在我们需要将此函数告知WordPress,因此我们将通过在上面的javascript代码中提供action参数,将此函数附加到我们创建的Hook上。
  1. add_action(‘wp_ajax_ak_attach’, ‘ajaxResponse’);

就这样了,我们完事了。

既然你知道了如何在编写插件时轻松使用Ajax,那就继续使用它吧。下载这个演示插件的代码,它显示了整个操作,并且可以作为模板。

注意:admin-ajax.php只允许管理员用户发布数据,这意味着它只能在WordPress的管理区域使用,不能用于一般场景。

赞(0)
未经许可不得转载:小心灵学院 » 使用jQuery为WordPress插件开发人员简化Ajax
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址