近期小v脸(本网站朋友)在开发设计一款响应式的wordpressblog主题风格,该wordpress主题很多数据展示与递交都采用了ajax技术,因此小v脸刻意写一篇实例教程纪录下,便捷别的wordpress开发人员做wordpress ajax应用程序开发的情况下做参照。假如有一些小伙伴们还不知道什么是ajax,请自主百度搜索想象~~,闲言碎语就很少讲了,实例教程逐渐。
许多开发人员在写软件时喜爱用下列方法完成ajax:
- require_once( ‘../../../../wp-config.php’ );
就连百度站长平台官方网开发设计的wordpress非结构化数据递交软件也是如此完成ajax的,这也是一种极为不科学的书写,由于一旦客户设定的文件目录不一样, 绝对路径便会无效.而且, 假如你在你的软件中应用的是面向对象编程的书写, 你将没法同时应用一些自变量和私有化方式. 较大的弊端便是会致使全部Wordpress的架构附加重新加载一遍,比较严重的影响到了网址的运转高效率。
实际上,wordpress为了更好地便捷开发人员开发设计含有ajax作用的软件主题风格早已预订义好啦ajax方式,大家只需依照官方网预埋的方式 去应用就好了。在开发设计wordpress ajax你要先掌握的是,无论是后台管理或是前台接待一切的Ajax要求全是在admin-ajax.php解决的,向admin-ajax.php推送要求的情况下, 有一个务必的基本参数是$_REQUEST[‘action’], 由于admin-ajax.php必须依据客户是不是登录了来开启不一样的hooks。
- if ( is_user_logged_in() ) {
- /**
- * Fires authenticated AJAX actions for logged-in users.
- *
- * The dynamic portion of the hook name, `$_REQUEST[‘action’]`,
- * refers to the name of the AJAX action callback being fired.
- *
- * @since 2.1.0
- */
- do_action( ‘wp_ajax_’ . $_REQUEST[‘action’] );
- } else {
- /**
- * Fires non-authenticated AJAX actions for logged-out users.
- *
- * The dynamic portion of the hook name, `$_REQUEST[‘action’]`,
- * refers to the name of the AJAX action callback being fired.
- *
- * @since 2.8.0
- */
- do_action( ‘wp_ajax_nopriv_’ . $_REQUEST[‘action’] );
- }
以上编码取自wordpress系统文档admin-ajax.php,从以上编码我们可以看得出我们要进行一个要求最先要明白这一要求是不是在登陆情况下进行的?不一样情况开启的hook也不一样,下边是个在主题风格运用jquery完成ajax的实例编码:
- add_action( ‘wp_head’, ‘v7v3AjaxScript’);
- function v7v3AjaxScript(){
- print ‘<script>var v7v3_ajaxurl = “‘. admin_url( ‘admin-ajax.php’ ) . ‘”‘ . “;</script>n”;
- print “<script>
- $(docunment).ready(function(){
- $.ajax( {
- url: v7v3_ajaxurl,
- data:{
- action : ‘is_login’
- },
- type:’post’,
- cache:false,
- success:function(data) {
- alert(data);
- }
- });
- });
- </scrip>”;
- }
- add_action( ‘wp_ajax_nopriv_is_login’, ‘v7v3_ajax_not_login’ );
- add_action( ‘wp_ajax_is_login’, ‘v7v3_ajax_is_login’ );
- function v7v3_ajax_is_login(){
- global $current_user;
- get_currentuserinfo();
- printf( ‘登陆客户你好 : %s!’, $current_user->display_name );
- //函数公式完毕前的die或exit很重要,一定要加。
- die;
- }
- function v7v3_ajax_not_login(){
- print ‘尊重的访问者你好!’;
- //函数公式完毕前的die或exit很重要,一定要加。
- die;
- }
在开发设计wordpress ajax运用中最重要的一点便是函数公式完毕以前一定要加die或是exit,假如不用得话会把全部wordpress架构都重新加载一遍。