雖然背後已經被拉斐爾在他的回答中所示的想法,我進行干預,以添加一些細節
與Wordpress一起使用AJAX的最佳方式是使用其內置的方式來處理它,並通過發送請求到wp-admin/admin-ajax.php
(我知道文件名的「admin」部分有點誤導。但前端(觀看端)以及管理員的所有請求都可以在admin-ajax.php
中處理,具有很多好處,特別是對於安全性。而對於將被執行的服務器端代碼php,它應該放置在functions.php
。
jQuery代碼看起來是這樣的:在你的主題的functions.php
(你的插件文件或直接)
$(document).ready(function() {
$('.tabs a').click(function(e) {
e.preventDefault();
var tab_id = $(this).attr('id');
$.ajax({
type: "GET",
url: "wp-admin/admin-ajax.php",
dataType: 'html',
data: ({ action: 'yourFunction', id: tab_id}),
success: function(data){
$('#tab'+tab_id).html(data);
},
error: function(data)
{
alert("Error!");
return false;
}
});
});
});
,添加:
add_action('wp_ajax_yourFunction', 'yourFunction');
add_action('wp_ajax_nopriv_yourFunction', 'yourFunction');
,並在同一個文件yourFunction
回調定義功能如下:
function yourFunction() {
// get id
// your php code
die();
}
對於j avascript部分,看看ajax()及其簡寫get()。而對於在Wordpress中使用AJAX的最佳實踐,網上有很多教程(我會回來給出一個)。祝你好運
編輯:
因爲它是由卡爾mentionned,您可以使用代替ajax()
,應當注意的是,僅僅是$.ajax()
的包裝。它增加了一些功能,使您可以定義文檔中要插入返回數據的位置。因此,只有當調用只會導致HTML時才真正可用。它被稱爲與另一個稍有不同,因爲它是綁定到特定jQuery包裝的DOM元素的方法。因此,可以這樣做:$('#divWantingContent').load(...)
,其內部呼叫.ajax()
。
但我的原始答案是關於如何組織PHP代碼尊重Wordpress best practices。
jQuery AJAX:http://api.jquery.com/jquery.ajax/ – mjohns