商品 車販売 ブログ と検索と結果のページを分ける方法

検索フォームと検索結果ページを複数設置する

ここ参考

まず車はポストタイプカー

<div class="search_box">
<form role="search" method="get" id="searchform" action="/" >
<input type="text" value="<?php the_search_query(); ?>" name="s" class="s" />
<input type="hidden" name="post_type" value="car">
<input type="submit" class="searchsubmit" value="" />
</form>
</div>
<?php //if(function_exists('wp_custom_fields_search')) wp_custom_fields_search(); ?>
</div>

welcartは商品カテゴリ内 ポストタイプポスト

       <div class="search_box">
<form role="search" method="get" id="searchform" action="/" >
<input type="text" value="<?php the_search_query(); ?>" name="s" class="s" />
<input type="hidden" name="post_type" value="post">
 <input type="hidden" name="cat" id="cat" value="287" />
<input type="submit" class="searchsubmit" value="" />
</form>
</div>
<?php //if(function_exists('wp_custom_fields_search')) wp_custom_fields_search(); ?>
</div>

//ブログは商品カテゴリ除外

 <div class="search_box">
<form role="search" method="get" id="searchform" action="/" >
<input type="text" value="<?php the_search_query(); ?>" name="s" class="s" />
<input type="hidden" name="post_type" value="post">
 <input type="hidden" name="cat" id="cat" value="-287" />
<input type="submit" class="searchsubmit" value="" />
</form>
</div>
<?php //if(function_exists('wp_custom_fields_search')) wp_custom_fields_search(); ?>
</div>

検索結果は
ポストタイプごとに分けれるらしい
earch-投稿タイプ名.php” というテンプレートが使えるようになります。

add_filter('template_include','custom_search_template');
function custom_search_template($template){
  if ( is_search() ){
    $post_types = get_query_var('post_type');
    foreach ( (array) $post_types as $post_type )
      $templates[] = "search-{$post_type}.php";
    $templates[] = 'search.php';
    $template = get_query_template('search',$templates);
  }
  return $template;
}

ブログ結果添付内で
商品ならで違うフォームにとばしてリターンさせてブログはわけれそう

但し、車のファンクションで
is serch でメインクエリかけてる部分があるので
それを入れてるとブログの検索結果が除外されてしまうので
そこは検証

// サーチ ページ数
    if ( $query->is_search() && $query->is_main_query() ) {
$query->set('posts_per_page', 12 );
 $query->set( 'meta_key', 'car_open' );
 $query->set( 'orderby', 'meta_value_num' );
 $query->set( 'order', 'ASC' ); //数値が低い順
  }

これが問題なようだ

// サーチ ページ数
    if ( $query->is_search() && $query->is_main_query() ) {
$sortset = (string)filter_input(INPUT_POST, 'post');
	if ($sortset == 'car' ){
$query->set('posts_per_page', 12 );
 $query->set( 'meta_key', 'car_open' );
 $query->set( 'orderby', 'meta_value_num' );
 $query->set( 'order', 'ASC' ); //数値が低い順
  }
		}

としてpostがカーのときのみこれが効く様にした。

どうやらINPUT_POSTでなく INPUT_GETなようだ