ajax 自定义返回,Wordpress自定义查询函数AJAX回调返回0

您看到从admin-ajax.php有可能是'0'响应,因为你还没有注册的AJAX行动挂钩为此功能。

要正确注册您的AJAX呼叫功能,您需要使用操作挂钩wp_ajax_*来实现admin和wp_ajax_nopriv_*可用的功能,以使其在前端可用。

在您的JavaScript中,AJAX调用未正确设置 - done()和success()在jQuery 1.8中已弃用。您应该使用“完成”,“成功”和“错误”回调。

使用POST是在WordPress中处理AJAX请求的推荐方式。由于这是一项独特的要求,因此没有理由致电wp_reset_query()。

从个人偏好我会返回JSON,而不是只使用the_*功能倾销值。在表单值中检查isset()并不是一个坏主意,以确保您没有任何未定义的索引错误。也正因为我有点强迫症,它应该是 “垂直”,而不是 “verticle” :)

PHP

function CaseStudiesAjaxFunction() {

global $post;

$vertical = isset($_GET["vertical"])? $_GET["vertical"] : '';

$product = isset($_GET["product"])? $_GET["product"] : '';

$source = isset($_GET["source"])? $_GET["source"] : '';

$args = array(

'posts_per_page' => '12',

'tag' => array($verticle, $product, $source)

);

$query = new WP_Query($args);

if ($query->have_posts()) : while ($query->have_posts()) : $query->the_post();

the_post_thumbnail();

the_title();

endwhile; endif;

die();

}

// Add the ajax hooks for admin

add_action('wp_ajax_CaseStudiesAjaxFunction', 'CaseStudiesAjaxFunction');

// Add the ajax hooks for front end

add_action('wp_ajax_nopriv_CaseStudiesAjaxFunction', 'CaseStudiesAjaxFunction');

JAVASCRIPT

function filterCaseStudies(){

var data = $('#case-studies-form').serialize();

$.ajax({

type: 'GET',

url: case_studies_ajax_script.ajaxurl,

dataType: 'text',

data: data + "&action=CaseStudiesAjaxFunction",

complete: function(xhr, status){

console.log("Request complete: " + status);

},

error: function(xhr, status, errorThrown){

console.log("Request failed: " + status);

},

success: function(data, status, xhr){

console.log("Request success: " + data);

// change the html

$('.case-studies-container').html(data);

}

});

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值