WordPress实时搜索不显示任何结果

时间:2017-10-12 14:42:44

标签: php jquery ajax wordpress

我正在尝试使用自定义WordPress主题上的ajax和jquery创建实时搜索。如果我使用.click()函数,它会显示所需的输出,但是当使用.keyup或on('输入',function(){})时,它什么都不显示。

Jquery代码

var searchRequest = null;
            var minlength = 3;

            $(".search-submit").on('input',function(e){
                e.preventDefault();
                var st=$(".search-field").val();

                if (st.length >= minlength )
                {
                    if (searchRequest != null) 
                    searchRequest.abort();
                    searchRequest=$.ajax({
                        type:"POST",
                        url: "./wp-admin/admin-ajax.php",
                        data: {
                            action:'wpa56343_search', 
                            search_string:st
                            },
                        success:function(data){
                            $('.srch-result').append(data);
                        }
                    }); 
                }

            });  

function.php的PHP代码

add_action('wp_ajax_nopriv_wpa56343_search', 'wpa56343_search'); 
add_action('wp_ajax_wpa56343_search', 'wpa56343_search');
function wpa56343_search()
{
    global $wp_query;
    $search = $_POST['search_string'];
    $args = array(
        's' => $search,
        'posts_per_page' => 5
    );
    $query = new WP_Query( $args );

    if ( $query->have_posts() ) :
      while ( $query->have_posts() ) : 

    $query->the_post();
    get_template_part( 'template-parts/ajax-search-format', get_post_format() );

  endwhile;
  endif;
  wp_reset_postdata();
}

1 个答案:

答案 0 :(得分:1)

请显示您的html结构。 我认为你试图用错误的元素触发。 也许$(“。search-submit”)不是输入字段。

尝试:

$(".search-field").on('input',function(e){
//** YOUR CODE **/
});