问题可能是因为ajax请求不会自动加载WordPress核心文件和相关的函数。可以尝试在ajax的操作中手动引入WordPress的核心文件,如下所示:
- 在你的主题或插件的functions.php中添加以下代码:
add_action('wp_ajax_my_action', 'my_action_callback');
add_action('wp_ajax_nopriv_my_action', 'my_action_callback');
function my_action_callback() {
require_once( ABSPATH . 'wp-admin/includes/taxonomy.php' );
$terms = wp_get_post_terms( $_POST['post_id'], 'your_taxonomy_name' );
echo json_encode( $terms );
wp_die();
}
- 在你的Ajax请求中使用my_action作为ajax操作,并使用'your_taxonomy_name'替换为你要获取分类的名称,如下所示:
jQuery.ajax({
type: 'POST',
url: ajaxurl, // admin-ajax.php
data: {
action: 'my_action',
post_id: post_id
},
success: function(response) {
var terms = JSON.parse(response);
console.log(terms);
}
});