问题可能是因为ajax请求不会自动加载WordPress核心文件和相关的函数。可以尝试在ajax的操作中手动引入WordPress的核心文件,如下所示:
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(); }
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); } });