2012-06-23 7 views
6

私はwordpress ajaxの検索結果を設定する必要がありますが、ボタンをクリックして別のサイト(myurl.com? s =用語)。私はadmin-ajax.phpを正しく呼んだが、これを正しく設定しなかった。何が問題を引き起こしているのでしょうか?jqueryを使用してwordpressの検索結果を取得する方法

//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> 

答えて

9

あなたは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(data){ 
       $('#results').append(response); 
      } 
    }); 
}); 

をあなたの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 
} 
+0

マイsearch.phpが子テーマである:あなたはより多くの情報のために、この完全なチュートリアルを読んで、あまりにもtypeahead.jsのjQueryプラグインを使用することができます。 .post行に違いはありますか? –

+0

あなたのsearch.phpの正しいURLを与えてください。どこにあるのかは、コンソールのエラーを確認してください。 –

+0

yeapが問題でした。私の手を持ってくれてありがとう! –

関連する問題