我引用了一些网上的例子,修改了functions.php和前端模板来触发ajax调用来获取一些数据。但我很难理解数据是从请求的 url 返回的。
在functions.php的末尾,我添加了,
wp_enqueue_script('jquery');
function myFunction(){
echo "hi";
die();
}
add_action('wp_ajax_myFunction', 'myFunction');
add_action('wp_ajax_nopriv_myFunction', 'myFunction');
在我的自定义模板页面中,我添加了,
var datavalue = 'test data string';
jQuery.ajax({
url: "/wp-admin/admin-ajax.php",
method: "GET",
data: { 'datavar' : datavalue }
}).success(function(data) {
console.log("successfully run ajax request..." + data);
}).done(function(){
console.log("I am from done function");
}).fail(function(){
console.log("I am from fail function.");
}).always(function(){
console.log("I am from always function");
});
});
运行后,我得到这些响应。
I am from fail function.
I am from always function
我不明白如何从特定的url获取数据并在ajax的成功函数中显示结果。
我什至不知道这个ajax调用将如何调用function.php中定义的函数?它们有什么关系?
请解释一下。另外我想通过传递关键字来触发ajax调用来查询数据库,我该如何在wordpress中做到这一点?
最佳答案
您的 AJAX 函数应包含一个操作参数来告诉 admin-ajax 您要执行哪个函数。
url: "/wp-admin/admin-ajax.php",
method: "GET",
data: {
action : 'myFunction'
}
(或者,如果您已做好准备,则可以将其包含在您的网址中,如下所示)
url: "/wp-admin/admin-ajax.php?action=myFunction"
此外,functions.php 中的函数应该用 PHP 编写:
function myFunction(){
echo 'hello';
die();
}
关于php - Ajax 调用在 WordPress 中无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44535266/