尽管拉斐尔(Raphael)在回答中已经说明了背后的想法,但我还是想补充一些细节。
将AJAX与Wordpress结合使用的最佳方法是使用其内置的处理方式,并且通过将请求发送到
wp-admin/admin-ajax.php(我知道文件名的“ admin”部分有点误导。但是所有请求都位于前面,可以在其中处理终端(查看端)和管理员
admin-ajax.php,这有很多好处,尤其是在安全方面;对于将要执行的服务器端代码php,应将其放置在中
functions.php。
您的jQuery代码如下所示:
$(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; } }); }); });在
functions.php您的主题中(或直接在您的插件文件中),添加:
add_action('wp_ajax_yourFunction', 'yourFunction');add_action('wp_ajax_nopriv_yourFunction', 'yourFunction');并在相同的文件
yourFunction回调函数中定义如下:
function yourFunction() {// get id // your php pre die(); }对于javascript部分,请看ajax()及其简写get()。对于将AJAX与Wordpress结合使用的最佳做法,网络上有很多教程(我会再提供一个)。祝好运
编辑:
正如Karl所提到的,您可以使用
.load()代替
ajax(),应该注意的
.load()是只是包装
$.ajax()。它添加了功能,使您可以定义将返回的数据插入到文档中的何处。因此,仅在调用仅会导致HTML时才真正可用。它的名称与其他名称略有不同,因为它是与特定的jQuery包装的DOM元素绑定的方法。因此,可以这样做:
$('#divWantingContent').load(...)内部调用.ajax()。
但是我最初的答案是关于如何按照WordPress
最佳实践来组织php代码。



