前提・実現したいこと
社内のサイトをカスタマイズしています。絞込検索にて設定している条件を単独から複数にしたいのですがつまづいております。
ご教授をいただけると非常に助かります
現在のソースコード
php
1 if( $hairb == 1 ){ 2 $page_sentaku_dat .= '<input type="hidden" name="hairb" value="1" >'; 3 $hair_data = '<=> 1200' ; 4 } 5
このコードの場合、1200に設定している条件が単独で出力されています。
複数の条件を出力させるにあたり
問題なのは、条件に設定している番号は1000から3000あり、グループが3つに分かれていることです。
1000から1500が1グループ
1501から2000が2グループ
2001から3000が3グループ
このグループを3つに分けると
php
1 2 if( $hairb == 1 ){ 3 $page_sentaku_dat .= '<input type="hidden" name="hairb" value="1" >'; 4 $hair_data = '< 1500' ; 5 } 6 7 if( $hairb == 2 ){ 8 $page_sentaku_dat .= '<input type="hidden" name="hairb" value="2" >'; 9 $hair_data = '> 1501' ; 10 } 11 12 if( $hairb == 3 ){ 13 $page_sentaku_dat .= '<input type="hidden" name="hairb" value="3" >'; 14 $hair_data = '> 2001' ; 15 }
1グループと3グループは問題ないのですが、2グループが3グループの条件まで出力されるのでどうすればよいでしょうか?
初心者で申し訳ないのですがどうぞよろしくお願いいたします
追記 全体のコード
php
1 $page_sentaku_dat .= '<div id="search_page">'; 2 3 //$page_sentaku_dat .= '<h3>カテゴリ'.$shub_txt.'</h3>'; 4 $page_sentaku_dat .= 'ご希望の条件を選択<br />'; 5 6 $page_sentaku_dat .= '<form method="get" id="searchpage" name="searchpage" action="' . $site . '" >'; 7 $page_sentaku_dat .= '<input type="hidden" name="bukken" value="search" >'; 8 9 //1グループ 10 if( $hairb == 1 ){ 11 $page_sentaku_dat .= '<input type="hidden" name="hairb" value="1" >'; 12 $hair_data = '< 1500' ; 13 } 14 15 //2グループ 16 if( $hairb == 2 ){ 17 $page_sentaku_dat .= '<input type="hidden" name="hairb" value="2" >'; 18 $hair_data = '> 1501' ; 19 } 20 //3グループ 21 if( $hairb == 3 ){ 22 $page_sentaku_dat .= '<input type="hidden" name="hairb" value="3" >'; 23 $hair_data = '> 2001' ; 24 } 25 26 $page_sentaku_dat .= '<table class="form_search">'; 27 28 //カテゴリ選択 29 $page_sentaku_dat .= '<tr id="haircat">'; 30 $page_sentaku_dat .= '<th>カテゴリ'.$hairb_txt.'</th>'; 31 $page_sentaku_dat .= '<td class="haircat">'; 32 33 $sql = " SELECT DISTINCT PM.meta_value AS "; 34 $sql .= " FROM ($wpdb->posts AS P "; 35 $sql .= " INNER JOIN $wpdb->postmeta AS PM ON P.ID = PM.post_id) "; 36 37 38 $sql .= apply_filters( 'inc_archive_search_sql_inner_join', '' ); 39 40 $sql .= " WHERE P.post_status='publish' AND P.post_password = '' AND P.post_type ='model' "; 41 $sql .= " AND PM.meta_key='haircategory' "; 42 $sql .= " AND CAST( PM.meta_value AS SIGNED ) ". $hair_data ; 43 44 45 $sql .= apply_filters( 'inc_archive_search_sql_where', '' ); 46 47 $sql .= " ORDER BY PM.meta_value"; 48 $metas = $wpdb->get_results( $sql, ARRAY_A ); 49 50 if(!empty($metas)) { 51 $page_sentaku_dat .= '<ul>'; 52 foreach ( $metas as $meta ) { 53 $haircategory_id = $meta['haircategory']; 54 55 foreach($da_haircategory as $meta_box){ 56 if( $haircategory_id == $meta_box['id'] ){ 57 $page_sentaku_dat .= '<li>'; 58 $page_sentaku_dat .= '<input type="checkbox" name="hair[]" value="'.$meta_box['id'].'" id="'.$meta_box['id'].'"'; 59 60 if( $hair_id && is_array( $hair_id ) ) { 61 foreach( $hair_id as $meta_box4 ){ 62 if( $meta_box4 == $meta_box['id'] ) $page_sentaku_dat .= ' checked="checked"'; 63 } 64 } 65 66 $page_sentaku_dat .= ' /><label for="'.$meta_box['id'].'">'.$meta_box['name'].'</label>'; 67 $page_sentaku_dat .= '</li>'; 68 } 69 } 70 } 71 $page_sentaku_dat .= '</ul>'; 72 } 73 $page_sentaku_dat .= '</td>'; 74 $page_sentaku_dat .= '</tr>';
条件のコード
php
1function da_haircategory_init_model(){ 2 3 global $da_haircategory; 4 5 $da_haircategory = 6 array( 7 "1000" => array("id" => "1000","name" => "キッズ男の子"), 8 "1100" => array("id" => "1100","name" => "キッズ女の子"), 9 "1200" => array("id" => "1200","name" => "キッズショート"), 10 "1300" => array("id" => "1300","name" => "キッズセミ"), 11 "1400" => array("id" => "1400","name" => "キッズロング"), 12 13 "1501" => array("id" => "1501","name" => "メンズベリーショート"), 14 "1600" => array("id" => "1600","name" => "メンズショート"), 15 "1700" => array("id" => "1700","name" => "メンズミィディアム"), 16 "1800" => array("id" => "1800","name" => "メンズロング"), 17 "1900" => array("id" => "1900","name" => "メンズ定番"), 18 "2000" => array("id" => "2000","name" => "メンズ個性的"), 19 20 "2001" => array("id" => "2001","name" => "レディースショート"), 21 "2100" => array("id" => "2100","name" => "レディースミィディアム"), 22 "2200" => array("id" => "2200","name" => "レディースロング"), 23 "2300" => array("id" => "2300","name" => "レディース定番"), 24 "2400" => array("id" => "2400","name" => "レディース個性的"), 25 "2500" => array("id" => "2500","name" => "レディースカラー"), 26 "3000" => array("id" => "3000","name" => "レディース人気") 27 ); 28 29} 30add_action('init', 'da_haircategory_init_model');
回答2件
あなたの回答
tips
プレビュー