gpt4 book ai didi

php - Wordpress - 使用 jQuery ajax POST 请求获取用户信息

转载 作者:行者123 更新时间:2023-12-01 06:37:12 26 4
gpt4 key购买 nike

我正在 WordPress 中工作,尝试使用 ajax 请求通过传递用户 ID 来获取用户数据。

我可以看到用户 ID 通过 AJAX POST 正确发送,但我收到一条内部错误消息,但我不知道为什么。

起初我以为这是因为我试图获取一些已添加到用户配置文件中的自定义字段,但即使我简化了脚本,我仍然收到错误消息。

非常感谢任何帮助!

前端

$('.author').click(function() {

var id = $(this).attr('id');
var temp = id.split('-');
id = temp[1];

$.ajax({
type: 'POST',
url: 'wp-content/themes/twentyeleven/author_info.php',
data: {id: id},
dataType: 'html',
success: function(data) {
$('#author-bio').html(data);
}
});

return false;
});

author_info.php

$user_id = $_POST['id'];
$forename = get_the_author_meta('user_firstname', $user_id);
$output = $user_id;
echo $output;

错误消息

500(内部服务器错误)jquery.min.js:4

最佳答案

Mathieu 添加了一种可破解的方法来拦截请求并重定向它,这很好。我更喜欢构建返回 json_encoded 数组的 AJAX 响应。

$('.author').click(function() {

var id = $(this).attr('id');
var temp = id.split('-');
id = temp[1];

$.ajax({
url: 'http://absolute.path/wp-admin/admin-ajax.php',
data: {'action' : 'ajax_request', 'fn': 'getAuthorMeta', 'id': id},
dataType: 'json',
success: function(data) {
//We expect a JSON encoded array here, not an HTML template.
}
});
return false;
});

现在我们构建函数来处理我们的 ajax 请求。

首先,我们需要定义 ajax add_action 方法 ->

add_action('wp_ajax_nopriv_ajax_request', 'ajax_handle_request');
add_action('wp_ajax_ajax_request', 'ajax_handle_request');

我们需要在这里使用 add_action 行。我不会解释为什么。您会注意到这里的_ajax_request。这是我们在 AJAX 函数 data: {'action' : 'ajax_request'} 中发送的“action”。我们使用这个钩子(Hook)来验证我们的 AJAX 请求,它可以是您想要的任何内容。

接下来,我们需要构建或运行 ajax_handle_request

function ajax_handle_request(){
switch($_REQUEST['fn']){
case 'getAuthorMeta':
$output = ajax_get_author_meta($_REQUEST['id']);
break;
default:
$output = 'That is not a valid FN parameter. Please check your string and try again';
break;
}
$output = json_encode($output);
if(is_array($output)){
return $output;
}else{
echo $output;
}
}

现在让我们构建函数来实际获取作者元。

function ajax_get_author_meta($id){
$theMeta = get_the_author_meta([meta_option], $id);
return $theMeta;
}

其中 [meta_option] 是 a field provided by WP's native get_the_author_meta function .

此时,我们将返回到 success:function(data) , (data) 是对我们返回的 json_encoded 数组的引用。现在,我们可以迭代该对象以获取字段并根据需要将它们输出到页面中。

关于php - Wordpress - 使用 jQuery ajax POST 请求获取用户信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11633739/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com