///////////////////// // slugからtermid取得 $term = get_term_by( 'slug', $get_cuisine_genre[$ii], 'cuisine_genre' ); // 親termidから子孫termのtermid取得 $c_term_id = get_term_children( $term->term_id, 'cuisine_genre' ); if( !empty( $c_term_id ) ){ // 子孫のslug取得 $c_slug = array(); $c_cnt = count( $c_term_id ); for( $ci=0; $ci<$c_cnt; $ci++ ){ $c_term = get_term( $c_term_id[$ci], 'cuisine_genre' ); $c_slug[] = $c_term->slug; } // 子孫にチェックがない場合に条件に設定 $intersect = array_intersect( $_GET['cuisine_genre'], $c_slug ); if( empty( $intersect ) ){ $meta_query_genre[] = array( 'taxonomy'=>'cuisine_genre', 'terms'=>$term->slug, 'field'=>'slug' ); } }else{ // 子孫なし → 条件に設定 $meta_query_genre[] = array( 'taxonomy'=>'cuisine_genre', 'terms'=>$term->slug, 'field'=>'slug' ); } } $posttype[] = "local-cuisine"; } */ /////////////////////////////////////////// // $tax_queryにまとめる /////////////////////////////////////////// if( !empty( $meta_query_genre ) ){ $tax_query[] = $meta_query_genre; } //////////////////////////////////////////////////////////////////////////////////////////////// // キーワードに条件を設定 //////////////////////////////////////////////////////////////////////////////////////////////// if( !empty( $_GET['s'] ) ){ if( ( preg_match( "/^([  \t\r\n]|[ぁ-ん]|[ー])+$/u", $_GET['s'] ) ) || ( preg_match( "/^([  \t\r\n]|[ァ-ヾ]|[ー])+$/u", $_GET['s'] ) ) ){ // 文字列はひらがなのみです $meta_query_keyword['relation'] = "OR"; // 半角スペースを全角スペースに変換 $convert_keyword = str_replace( " ", " ", $_GET['s'] ); // 半角カタカナ → 全角カタカナ $convert_keyword = mb_convert_kana( $convert_keyword, "K" ); // 全角カタカナを全角平仮名に変換 $convert_keyword_hirakana = mb_convert_kana( $convert_keyword, "c" ); // カタカナの状態で検索に設定 $split_keyword = explode( " ", $convert_keyword); $keywordcnt = count( $split_keyword ); for( $ss=0; $ss<$keywordcnt; ++$ss ){ $meta_query_keyword[] = array( 'key'=>'kana', 'value'=>$split_keyword[$ss], 'compare'=>'LIKE' ); // $meta_query_keyword[] = array( 'key'=>'food_feature', 'value'=>$split_keyword[$ss], 'compare'=>'LIKE' ); // $meta_query_keyword[] = array( 'key'=>'product_feature', 'value'=>$split_keyword[$ss], 'compare'=>'LIKE' ); // $meta_query_keyword[] = array( 'key'=>'cuisine_feature', 'value'=>$split_keyword[$ss], 'compare'=>'LIKE' ); } // 平仮名の状態で検索に設定 $split_keyword = explode( " ", $convert_keyword_hirakana); $keywordcnt = count( $split_keyword ); for( $ss=0; $ss<$keywordcnt; ++$ss ){ $meta_query_keyword[] = array( 'key'=>'kana', 'value'=>$split_keyword[$ss], 'compare'=>'LIKE' ); // $meta_query_keyword[] = array( 'key'=>'food_feature', 'value'=>$split_keyword[$ss], 'compare'=>'LIKE' ); // $meta_query_keyword[] = array( 'key'=>'product_feature', 'value'=>$split_keyword[$ss], 'compare'=>'LIKE' ); // $meta_query_keyword[] = array( 'key'=>'cuisine_feature', 'value'=>$split_keyword[$ss], 'compare'=>'LIKE' ); } $meta_query[] = $meta_query_keyword; } } //////////////////////////////////////////////////////////////////////////////////////////////// // エリアの条件を設定 //////////////////////////////////////////////////////////////////////////////////////////////// $area = array(); if( !empty( $_GET['area'] ) ){ $cnt = count( $_GET['area'] ); for( $ii=0; $ii<$cnt; $ii++ ){ $areatemp = explode( ",", $_GET['area'][$ii] ); $area = array_merge( $area, $areatemp ); } } if( !empty( $area ) ){ $meta_query_area['relation'] = "OR"; $cnt = count( $area ); for( $ii=0; $ii<$cnt; $ii++ ){ $meta_query_area[] = array( 'key'=>'food_area', '