2016-01-22 25 views
0

我試過了所有我能想到的,但我無法獲得Select2 Ajax來調用Wordpress wp_ajax操作。Select2 Ajax不在Wordpress中調用wp_ajax_(Javascript錯誤,不是WP錯誤)

這裏是我的functions.php(不包括入隊和腳本的本地化):

function get_list_posts() { 
    $search = sanitize_text_field($_REQUEST['list_search']); 
    $post_type = sanitize_text_field($_REQUEST['post_type']); 

    $post_query = new WP_Query(
    array(
     'post_type' => $post_type, 
     'post_status' => 'published', 
     's' => $search 
    ) 
); 

    // Bail if we don't have any results 
    if (empty($post_query->results)) { 
    wp_send_json_error($_POST); 
    } 

    $results = array(); 
    foreach ($post_query->results as $post) { 
    $results[] = array(
     'id' => $post->ID, 
     'text' => $post->title 
    ); 
    } 

    wp_send_json_success($results); 
    die(); 
} 
add_action('wp_ajax_list_posts', 'get_list_posts'); 
add_action('wp_ajax_nopriv_list_posts', 'get_list_posts'); 

而且我的javascript:

$('#list-search').select2({ 
    minimumInputLength: 3, 
    ajax: { 
     url: ajax_post_params.ajax_url, 
     dataType: 'json', 
     data: function (term, page) { 
     post_type = $(this).attr("data-post-type"); 
     return { 
      action: 'list_posts', 
      list_search: term, 
      post_type: post_type 
     }; 
     }, 
     processResults: function (data, params) { 
     console.log(data); 
     console.log(params); 
     params.page = params.page || 1; 
     return { 
      results: data.items, 
      pagination: { 
      more: (params.page * 30) < data.total_count 
      } 
     }; 
     }, 
     cache: true 
    } 
    }); 

在調試AJAX獲取到的數據和功能'返回',但從來沒有讓它調用動作(或至少從未運行該功能的PHP)。任何建議,我怎麼能找出這是什麼問題?我相信這是一個javascript錯誤,而不是一個Wordpress錯誤,這就是爲什麼我在stackoverflow中,但請糾正我,如果我錯了。

+0

你的JS控制檯中是否有錯誤?請求是否在您的網絡標籤中生成任何錯誤?有沒有生成請求? –

+0

不,我不能在控制檯或網絡選項卡中找到它生成的任何錯誤。 – lawdawg

回答