如何使用Jquery检索Wordpress的Ajax搜索结果 [英] How to use Jquery to retrieve ajax search results for wordpress

查看:86
本文介绍了如何使用Jquery检索Wordpress的Ajax搜索结果的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要设置wordpress ajax搜索结果,但是单击按钮时我的方法不会检索结果,而是将我重定向到另一个网站(myurl.com?s=term).我正确地调用了admin-ajax.php,但是设置不正确.有什么想法会导致问题吗?

I need to set up wordpress ajax search results but my method isn't retrieving the results when the button is clicked and is instead redirecting me to another site ( myurl.com?s=term ). I called admin-ajax.php correctly but set this up incorrectly. Any ideas what's causing the problem?

//Script to activate ajax
 jQuery(document).ready(function($){
  var search_val=$("#s").val();
  $('#searchsubmit').click(function(){
    $.post(
        WPaAjax.ajaxurl,
        {
            action : 'wpa56343_search',
            search_val : search_val
        },
        function( response ) {
            $('#results').append( response );
        }
    );
   });

 });

//function to setup wp_query
add_action('wp_ajax_wpa56343_search', 'wpa56343_search');
function wpa56343_search(){
  global $wp_query;
  $search = $_POST['search_val'];
  $args = array(
    's' => $search,
    'posts_per_page' => 5
  );
  $wp_query = new WP_Query( $args );

  get_template_part( 'search-results' );

  exit;
}

//html

  <div id="my_search">
   <form role="search" method="get" id="searchform" action="http://myurl.com/" >
    <input type="text" value="" name="s" id="s" />
    <input type="submit" id="searchsubmit" value="Search" />
   </form>
  </div>
  <div id="results"></div>  

推荐答案

您应将代码包装在document.ready

$(document).ready(function(){
    $("#searchsubmit").click(function(e){
        e.preventDefault();
        var search_val=$("#s").val(); 
        $.post(search.php,{search_string:search_val},function(data){
            if(data.length>0){
                $("#results").html(data);
            }
        });
    });   
});

更新:

$(document).ready(function(){
    $("#searchsubmit").click(function(e){
        e.preventDefault();
        var search_val=$("#s").val(); 
        $.ajax({
            type:"POST",
            url: "./wp-admin/admin-ajax.php",
            data: {
                action:'wpa56343_search', 
                search_string:search_val
            },
            success:function(response){
                $('#results').append(response);
            }
        });
    });   
});

在您的functions.php中

In your functions.php

add_action('wp_ajax_nopriv_wpa56343_search', 'wpa56343_search'); // for not logged in users
add_action('wp_ajax_wpa56343_search', 'wpa56343_search');
function wpa56343_search()
{
    // code
}

这篇关于如何使用Jquery检索Wordpress的Ajax搜索结果的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆