我的代码基于此处接受的答案:
Wordpress - fetch user info using jQuery ajax POST request
页眉
<?php $admin_ajax_path = ABSPATH . 'wp-admin/admin-ajax.php'; ?>
<script>
var absAjaxPath = "<?php echo $admin_ajax_path; ?>";
</script>
函数.php
add_action('wp_ajax_nopriv_ajax_request', 'ajax_handle_request');
add_action('wp_ajax_ajax_request', 'ajax_handle_request');
function ajax_handle_request(){
switch($_REQUEST['fn']){
case 'getUserMeta':
$output = ajax_user_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;
}
die();
}
function ajax_user_meta($id){
$theMeta = get_user_meta( $id, 'tel', true );
return $theMeta;
}
我的js文件
jQuery('.list-group-item').click(function() {
var id = jQuery(this).attr('id');
alert(id);
jQuery.ajax({
url: 'http://sub.domain.com/wp-admin/admin-ajax.php',
url: absAjaxPath, //this one returns a not found error
data: {'action' : 'ajax_request', 'fn': 'getUserMeta', 'id': id},
dataType: 'json',
success: function(data) {
//We expect a JSON encoded array here, not an HTML template.
alert(data);
}
});
return false;
});
这个
alert(id)
单击id设置为
2
。我用该id设置了一个用户。除此之外,什么都不会发生。不应该
alert(data)
在ajax成功函数触发器中?