WordPress中利用admin-ajax.php实现Ajax功能

用这个文件进行 Ajax 的好处主要有几点:

安全,WordPress 本身进行了很复杂的安全性优化,如果我们都自己写是很浪费时间和资源的。
兼容,由于文件是公用的,提供了通用的钩子,其它插件都可以参与进去。
高效,这个不解释了,既符合原则(执行到了 init 钩子),又兼顾了效率问题。
方便,一个钩子即可输出代码,都不用判断条件。
基本就这几点了,网上查了一下,发现关于此文件的资料并不多,于是看了下源码,发现使用其实很简单。

首先请求这个文件:

 代码如下 复制代码

echo admin_url( 'admin-ajax.php' );

向admin-ajax.php发送请求的时候, 有一个必须的参数是action, 因为admin-ajax.php需要根据用户是否登陆了来触发不同的hooks

 代码如下 复制代码

// 如果没登陆, 会触发这个hook
do_action( 'wp_ajax_nopriv_' . $_REQUEST['action'] );
 
// 如果登陆了, 会触发这个hook
do_action( 'wp_ajax_' . $_POST['action'] );
发出Ajax请求的代码大概如下:

jQuery.post(
       MyAjax.ajaxurl,
       {
            action : 'myajax-submit',
            postID : MyAjax.postID
       },
       function( response ) {
            alert( response );
       }
);

现在, 我们只需要在我们的主题文件中处理一下Ajax请求, 并不需要在单独的文件中来处理

 代码如下 复制代码

add_action( 'wp_ajax_nopriv_myajax-submit', 'myajax_submit' );
add_action( 'wp_ajax_myajax-submit', 'myajax_submit' );
 
function myajax_submit() {
 $postID = $_POST['postID'];
 $response = json_encode( array( 'success' => true ) );
 
 header( "Content-Type: application/json" );
 echo $response;
 
 // 这个很关键啊有木有: 别忘记 "exit"
 exit;
}

对,在登录和未登录的情况下会分别调用 wp_ajax_nopriv_action参数内容 和 wp_ajax_action参数内容,所以在这里输出即可,具体可以研究下 admin-ajax.php 文件。

时间: 2024-10-23 06:56:02

WordPress中利用admin-ajax.php实现Ajax功能的相关文章

ASP中利用OWC控件实现图表功能详解

控件|图表|详解 在ASP中利用OWC(Office Web Components)控件可轻松实现各种图表功能,如饼图,簇状柱型图,折线图等. 在下面的代码中我详细的给出了饼图,簇状柱型图,折线图的使用方法.OWC的更多功能,属性可参加MSOWCVBA.chm帮助文件(在office 2000的文件夹下大家自己找). testOWC.asp <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <

WordPress中利用AJAX技术进行评论提交的实现示例_javascript技巧

一直对 WordPress 的 Ajax 交互研究感兴趣,也一直很关注于这方面的技术,谈到 WordPress Ajax 就不得不谈到评论 Ajax提交,作为一个博客.论坛评论的 Ajax 提交不仅可以改善用户体验,还可以大幅缩减服务器开支,毕竟输出单条评论内容比重新组织输出一个页面要简单的多. 虽说现在访问量一直比较低,不存在服务器压力的问题,但一向注重用户体验的我,当然不能放弃这么一个提升用户体验的机会.今天抽了一下午的空,把这个主题的 Ajax 评论提交初步完成了. 直接开门见山,直接上代

WordPress中利用AJAX异步获取评论用户头像的方法_javascript技巧

在评论者输入邮箱后,异步获得评论者的头像并显示出来,个人感觉这个功能虽不能给用户体验带来多大的提升,也不算是一个实用的功能,但至少很炫,看到有的网站有添加这个功能,我也不甘寂寞所以也写了个脚本,没有时间做封装,所以直接上原理和代码. 异步动态调用头像原理 获得用户输入 过滤用户输入 传递变量到后台 后台处理数据,并返回头像的HTML代码 获得后台返回数据,将HTML代码加载到当前页面 貌似很多步骤,其实很简单,我们只要将自己的主题稍作修改就可以到达效果. 简单功能截图: 实现 功能代码:Java

wordpress中利用wp_link_pages()实现文章分页显示

这时候,我们就要用到一个wordpress函数--wp_link_pages()了.那么,怎样通过wp_link_pages()函数来实现wordpress文章的分页显示呢?下面,一起来看看吧. 首先,我们到文章页模板文件single.php里查找一下有没有wp_link_pages()函数,如果没有,我们给添加上.然后我们在写文章时,在文章需要分页的地方添加上<!–nextpage–>标签(注意:不是在"可视化"下添加,而是在"文本"状态下添加,这样才

WordPress中关闭自动保存和文章修订功能

  今天发文章时,惊奇的发现文章的ID竟然已经到达了19了.鉴于我以前折腾Wordpress的经验,我知道这是Wordpress的"自动保存和文章修订功能"在作怪.但是,该怎么才能关闭Wordpress的这个功能呢?!还是问"谷老师"吧. 经过"谷老师"的指点,找到了解决办法.其实很简单,只需在wp-config.php中加入以下代码即可:  代码如下 复制代码 define('AUTOSAVE_INTERVAL', 120 ); // 设置自动

PHP中利用sleep函数实现定时执行功能实现代码_php技巧

在一些竞猜的网站中,如果我们需要做一个定时执行的功能,比如有一道题,在十秒之内要完成,否则显示"您已超时",如果完成,则跳转到下一道题上面,而这中间有一个十秒的停顿,这样的功能是怎样实现的呢? 在PHP中,有一个sleep函数,大概意思是程序执行遇到sleep函数时暂停N秒后继续往下执行.如sleep(10)意思就是程序自上往下执行,遇到sleep(10)语句后暂停十秒,然后继续往下执行.函数括号内的参数是一个数值,代表暂停时间值,单位秒.请看下面一段代码: <?php // c

在ArcCatalog中利用IDW建模实现等值面的功能

问题描述 我在网上找了资料,说建模可以实现,我在建模的时候IDW工具输出的参数用int工具转换后,无法和PolygontoRester工具连接起来,颜色不会变的,还有PolygontoRester工具的参数也无法连接到Clip工具中会报参数不同的错误的,我是新手,不会建模,秋具体详细的建模过程,功能是根据雨量值可以再地图上形成等值线或等值面,最好有过程图

详解WordPress中分类函数wp_list_categories的使用_php技巧

wp_list_categories 函数是 WordPress 中用来罗列系统中分类的函数,该函数拥有许多控制输出的参数,今天突然被一个朋友问到,所以就大概整理了一下. 因为 WordPress 中内置扩展的小工具功能, 所以我们不经任何函数就可以在边栏或是其他我们想要的位置显示一个分类列表, 所以wp_list_categories函数就很少有人用到, 该函数使用起来有点类似于wp_list_bookmarks, wp_list_categories 描述wp_list_categories

静态页中利用AJAX.NET实现无刷新页面

ajax|静态|刷新|无刷新|页面 一. 导言 我们知道,ASP.net应用程序事实是在服务器上运行的,用户的请求要不断地送往远程的服务器,服务器执行完本地的程序后把重新装载页面再发送客户端.所以就出现了不断刷新的问题,页面不断闪烁.用户不厌其烦,运行效率也大大4降低,服务器的负荷加重.事实,客户端的请求在某一时刻只是通过向 Web 服务器提交新的请求来检索对用户输入所做的响应.这种情况下,开发人员可以使用 JavaScript 在客户端上加载所有响应,从而提供更好的用户体验.遗憾的是,在很多情