//未使用目もこーど//タクソノミ選択とカスタムフィールドのラジオボタンをシンクロさせる //http://yahss.net/wordpress/1302-synchronize-tax-with-customfield/ function my_print_footer_scripts() { global $post_type; if ($post_type == 'estate'): ?> <script type="text/javascript"> //<![CDATA[ jQuery(function($){ // タクソノミ選択チェックボックスをラジオボタンに $(".categorychecklist input[type=checkbox]").each(function(){ $(this).attr("type","radio"); }); // タクソノミIDとタクソノミ名を配列に定義 var tax_arr = new Array(); tax_arr['#in-tax_estate-6'] = '売買物件'; tax_arr['#in-tax_estate-7'] = '賃貸物件'; // タクソノミクリック時の処理 $("input[name^=tax_input]").live("click", function(){ $("input[name^=tax_input]").each(function(){ if ( $(this).is(':checked') == true ) { taxid = $(this).val(); taxname = tax_arr['#in-tax_estate-'+taxid]; return false; } }); $("#acf-field-sellrent-"+taxname).attr('checked', 'checked'); }); // カスタムフィールドのラジオボタンクリック時の処理 $("[id^=acf-field-sellrent-]").live("click", function(){ $("[id^=acf-field-sellrent-]").each(function(){ if ( $(this).is(':checked') == true ) { taxname = $(this).val(); return false; } }); for (var key in tax_arr) { if ( tax_arr[key] == taxname ) taxid = key; } $(taxid).attr('checked', 'checked'); }); }); //]]> </script> <?php endif; } add_action('admin_print_footer_scripts', 'my_print_footer_scripts', 21);
日: 2018年1月15日
商品 車販売 ブログ と検索と結果のページを分ける方法
ここ参考
まず車はポストタイプカー
<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なようだ