WordPress ajax没有返回我所期望的



我正在使用snippets插件和elements。我将ajax函数设置为如下代码段:

add_action( 'wp_ajax_get_slug_from_id', 'get_slug_from_id' );
add_action( 'wp_ajax_nopriv_get_slug_from_id', 'get_slug_from_id' );
function get_slug_from_id() {
return url_to_postid( $_POST['slug'] ); 
die();
}

我在页面上嵌入了一些jQuery来检索post id,像这样:

<script>
(function($){

$(window).on('load',function(){

$('.ee-calendar-skin--default .ee-calendar__day__event__name a').each(function(){

let slug = $(this).attr('href').match( /([^/]*)/[^/]*$/ )[1];

$.post(
wp.ajaxurl, 
{
'action': 'get_slug_from_id',
'slug': slug
}, 
function(response) {
console.log(response);
}
);

});

});

})(jQuery);
</script>

这只返回页面的HTML,如果我将wp.ajaxurl更改为'/wp-admin/admin-ajax.php',它只返回0

你知道我哪里做错了吗?

我终于想通了。将return更改为echo似乎是解决办法。

最新更新