麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 網站 > 建站經驗 > 正文

wordpress開發教程:原生態的wordpress ajax

2024-04-25 20:39:14
字體:
來源:轉載
供稿:網友

最近小V(本站好友)在開發一款自適應的wordpress博客主題,該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框架都重新加載一遍。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 国产999精品久久久久 | 久久欧美亚洲另类专区91大神 | 美女网站黄在线观看 | 午夜视频在线 | 午夜国内精品a一区二区桃色 | 国产精品久久久久久238 | 极品国产91在线网站 | 成人一级视频在线观看 | 日韩视频一二三 | 亚洲无马在线观看 | 精品国产一区二 | 女人一级一级毛片 | 欧美日韩色 | 亚洲xxx视频 | 国内精品视频饥渴少妇在线播放 | 欧美 国产 亚洲 卡通 综合 | 欧美激情综合网 | 欧美日韩高清一区二区三区 | 国产毛片在线 | 国产精品视频中文字幕 | 国产成人精品区 | 美女被免费网站在线软件 | 亚洲特黄妇女高潮 | 射逼网站 | 久久99久久99免费视频 | 黄色7777| 一级毛片在线观看免费 | 模特三级在线观看 | 亚洲电影在线观看高清免费 | 撅高 自己扒开 调教 | 国产亚洲精品久久午夜玫瑰园 | 天天干导航 | 一区二区三区视频在线播放 | 国产成人在线播放视频 | 午夜色视频在线观看 | 天堂精品在线 | 热99精品视频| 国产伦久视频免费观看视频 | 美国黄色毛片女人性生活片 | 久久精品观看 | 日本人乱人乱亲乱色视频观看 |