我正在使用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
似乎是解决办法。