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