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



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

J查询代码

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);
                        }
                    }); 
                }
            });  

函数的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();
}

也请显示您的 html 结构。我认为您正在尝试使用错误的元素触发。也许 $(".search-submit") 不是输入字段。

尝试:

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

最新更新