ここ参考
まず車はポストタイプカー
<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なようだ