如何使用Jquery检索wordpress的ajax搜索结果

前端之家收集整理的这篇文章主要介绍了如何使用Jquery检索wordpress的ajax搜索结果前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我需要设置wordpress ajax搜索结果,但我的方法不是在单击按钮时检索结果而是将我重定向到另一个站点(myurl.com?s=term).我正确调用了admin-ajax.PHP但是设置错误.是什么原因造成了这个问题?
  1. //Script to activate ajax
  2. jQuery(document).ready(function($){
  3. var search_val=$("#s").val();
  4. $('#searchsubmit').click(function(){
  5. $.post(
  6. WPaAjax.ajaxurl,{
  7. action : 'wpa56343_search',search_val : search_val
  8. },function( response ) {
  9. $('#results').append( response );
  10. }
  11. );
  12. });
  13.  
  14. });
  15.  
  16. //function to setup wp_query
  17. add_action('wp_ajax_wpa56343_search','wpa56343_search');
  18. function wpa56343_search(){
  19. global $wp_query;
  20. $search = $_POST['search_val'];
  21. $args = array(
  22. 's' => $search,'posts_per_page' => 5
  23. );
  24. $wp_query = new WP_Query( $args );
  25.  
  26. get_template_part( 'search-results' );
  27.  
  28. exit;
  29. }
  30.  
  31. //html
  32.  
  33. <div id="my_search">
  34. <form role="search" method="get" id="searchform" action="http://myurl.com/" >
  35. <input type="text" value="" name="s" id="s" />
  36. <input type="submit" id="searchsubmit" value="Search" />
  37. </form>
  38. </div>
  39. <div id="results"></div>

解决方法

您应该将您的代码包装在document.ready中
  1. $(document).ready(function(){
  2. $("#searchsubmit").click(function(e){
  3. e.preventDefault();
  4. var search_val=$("#s").val();
  5. $.post(search.PHP,{search_string:search_val},function(data){
  6. if(data.length>0){
  7. $("#results").html(data);
  8. }
  9. });
  10. });
  11. });

更新:

  1. $(document).ready(function(){
  2. $("#searchsubmit").click(function(e){
  3. e.preventDefault();
  4. var search_val=$("#s").val();
  5. $.ajax({
  6. type:"POST",url: "./wp-admin/admin-ajax.PHP",data: {
  7. action:'wpa56343_search',search_string:search_val
  8. },success:function(response){
  9. $('#results').append(response);
  10. }
  11. });
  12. });
  13. });

在你的functions.PHP

  1. add_action('wp_ajax_nopriv_wpa56343_search','wpa56343_search'); // for not logged in users
  2. add_action('wp_ajax_wpa56343_search','wpa56343_search');
  3. function wpa56343_search()
  4. {
  5. // code
  6. }

猜你在找的jQuery相关文章