単一の投稿ページでajax検索を作成する際に問題が発生しました。検索結果をカスタム投稿タイプ「fod_videos」と「post」およびカテゴリ12に制限する必要があります。私の問題は、検索がそれらのフィルターの下のすべての投稿を返し、検索値を取得しないことです。私は明白な何かが欠けていると思いますが、それを理解することはできます。これが私の設定です。
<div class="panel">
  <h2>Search Videos</h2>
  <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>
add_action('wp_ajax_wpa5000_search', 'wpa5000_search');
add_action('wp_ajax_nopriv_wpa5000_search', 'wpa5000_search');
function wpa5000_search(){
  global $wp_query;
  $search = $_POST['search_val'];
  $args = array(
    's' => $search,
    'posts_per_page' => 10,
    'cat' => 12, 
    'post_type' => array( 'post','fod_videos'  )
  );
  $wp_query = new WP_Query( $args );
  get_template_part( 'video-search-results' );
  exit;
}
add_action( 'wp_enqueue_scripts', 'wpa56343_scripts', 100 );
function wpa56343_scripts() {
 wp_enqueue_script(
    'wpa56343_script',
    get_template_directory_uri() . '/libs/search.js?ver=1.0',
    array( 'jquery' ),
    null,
    false
 );
 wp_localize_script(
    'wpa56343_script',
    'WPaAjax',
    array(
        'ajaxurl' => admin_url( 'admin-ajax.php' )
    )
 );
}// search.php
$(document).ready(function($){
 $('#searchsubmit').click(function(e){
    var $panel = $(this).closest(".panel");
    $panel.empty();
    e.preventDefault();
    var search_val=$("#s").val();
    $.post(
        WPaAjax.ajaxurl,
        {
            action : 'wpa5000_search',
            search_val : search_val
        },
        function( response ) {
            $panel.append( response );
        }
    );
 });
});//video-search-results.php
<?php
 while ( $wp_query->have_posts() ) : $wp_query->the_post(); ?>
   //STUFF
<?php endwhile; ?>
                  $ wp_queryは実際のWP_Queryオブジェクトですか?
                
                
                  
                    —
                    Brian Fegter 
                    
                  
                
              
                  @BrianFegterどういう意味かわかりません。インデックスページでこの正確な式を使用してajax検索結果を取得するのは奇妙なことです。それは単にsearch_valをプルしていません。$ searchを印刷してみましたが何も返りません。
                
                
                  
                    —
                    Pollux Khafra 2012 
                    
                  
                
              
                  $ _POSTデータ以外のコンテキストがないため、AJAXアクションには$ wp_queryが定義されていません。
                
                
                  
                    —
                    Brian Fegter 
                    
                  
                
              
                  インデックスページから何が機能するのですか?私はそれを使用して、デフォルトのループを検索結果に置き換え、それが機能します。
                
                
                  
                    —
                    Pollux Khafra