如何将wordpress类别作为数据发送到ajax?

我想将当前页面的类别发送到ajax。 我在我的博客网站上使用WordPress。 我想将当前页面类别发送到infi.php,但我不知道该怎么做。

我的阿贾克斯

$.ajax({ type: "POST", async: false, url: "/infi.php", data: {pcount:post_page_count}, success: function(result){ $("#gizinfi").append(result); } }); 

要在Wordpress中正确使用AJAX,您需要执行几个步骤。

首先,假设您正在正确注册和排队您的javascript文件(如果您不知道或不知道这意味着您应该检查如何在Wordpress中排队文件),则需要本地化该文件。 在你的functions.php文件中,你可以像这样本地化一个文件……

 $data_array = array( 'ajaxurl' => admin_url( 'admin-ajax.php' ) ); wp_register_script( 'YourAjaxScript', get_template_directory_uri() . 'js/example.js', array('jquery') ); wp_localize_script( 'YourAjaxScript', 'myAjax', $data_array ); 

现在您需要某种方式从您的JavaScript访问类别ID。 您可以在模板中的某个位置简单地包含空跨度,并将category_id存储为数据属性,然后您可以使用javascript轻松找到它。 出于安全原因,您还可以添加“nonce”,这样您就可以检查它是您访问PHP的ajax调用,而不是randomer。 所以我们将这个添加到你的header.php …

 term_id : false ); //We'll also create a nonce for security $nonce = wp_create_nonce( 'ajax_nonce' ); ?>  

现在在example.js文件中,您可以创建AJAX函数…

 $( document ).ready( function() { //Fetch your data variables var $cat = $( '#category-id' ).data('category'); var $nonce = $( '#category-id' ).data('nonce'); $.ajax({ type: 'POST', url: myAjax.ajaxurl, data: { action: 'my_ajax_handler', //PHP function to handle AJAX request category: cat, nonce: $nonce }, success: function( data ) { $("#gizinfi").append( data ); } }); }); 

然后你需要创建一个处理你的AJAX请求的PHP函数(只要你正确地包含那个文件就可以进入你的infi.php文件,但在你的functions.php文件中可能会更好)。 例如…

 /** * my_ajax_handler - handles my ajax response and returns some data * @return string - my data */ function my_ajax_handler() { //First we'll validate the nonce and exit if incorrect if ( !wp_verify_nonce( $_POST['nonce'], 'ajax_nonce' ) ) { exit; } //Here we handle your ajax request and return whatever //All our data variables are saved in the $_POST array $category = $_POST['category']; return $category; } add_action("wp_ajax_my_ajax_handler", "my_ajax_handler"); add_action("wp_ajax_nopriv_my_ajax_handler", "my_ajax_handler"); 

最后两行将函数绑定到您的ajax调用。 这应该就是你所需要的。

希望有所帮助