質問編集履歴

2

WordPressのタグを追加いたしました

2019/02/23 01:46

投稿

optzen
optzen

スコア38

test CHANGED
File without changes
test CHANGED
File without changes

1

全体の流れがわかるコードと呼び出している条件のコードを追記しました

2019/02/23 01:46

投稿

optzen
optzen

スコア38

test CHANGED
File without changes
test CHANGED
@@ -85,3 +85,229 @@
85
85
  1グループと3グループは問題ないのですが、2グループが3グループの条件まで出力されるのでどうすればよいでしょうか?
86
86
 
87
87
  初心者で申し訳ないのですがどうぞよろしくお願いいたします
88
+
89
+
90
+
91
+ ### 追記 全体のコード
92
+
93
+
94
+
95
+ ```php
96
+
97
+ $page_sentaku_dat .= '<div id="search_page">';
98
+
99
+
100
+
101
+ //$page_sentaku_dat .= '<h3>カテゴリ'.$shub_txt.'</h3>';
102
+
103
+ $page_sentaku_dat .= 'ご希望の条件を選択<br />';
104
+
105
+
106
+
107
+ $page_sentaku_dat .= '<form method="get" id="searchpage" name="searchpage" action="' . $site . '" >';
108
+
109
+ $page_sentaku_dat .= '<input type="hidden" name="bukken" value="search" >';
110
+
111
+
112
+
113
+ //1グループ
114
+
115
+ if( $hairb == 1 ){
116
+
117
+ $page_sentaku_dat .= '<input type="hidden" name="hairb" value="1" >';
118
+
119
+ $hair_data = '< 1500' ;
120
+
121
+ }
122
+
123
+
124
+
125
+ //2グループ
126
+
127
+ if( $hairb == 2 ){
128
+
129
+ $page_sentaku_dat .= '<input type="hidden" name="hairb" value="2" >';
130
+
131
+ $hair_data = '> 1501' ;
132
+
133
+ }
134
+
135
+ //3グループ
136
+
137
+ if( $hairb == 3 ){
138
+
139
+ $page_sentaku_dat .= '<input type="hidden" name="hairb" value="3" >';
140
+
141
+ $hair_data = '> 2001' ;
142
+
143
+ }
144
+
145
+
146
+
147
+ $page_sentaku_dat .= '<table class="form_search">';
148
+
149
+
150
+
151
+ //カテゴリ選択
152
+
153
+ $page_sentaku_dat .= '<tr id="haircat">';
154
+
155
+ $page_sentaku_dat .= '<th>カテゴリ'.$hairb_txt.'</th>';
156
+
157
+ $page_sentaku_dat .= '<td class="haircat">';
158
+
159
+
160
+
161
+ $sql = " SELECT DISTINCT PM.meta_value AS ";
162
+
163
+ $sql .= " FROM ($wpdb->posts AS P ";
164
+
165
+ $sql .= " INNER JOIN $wpdb->postmeta AS PM ON P.ID = PM.post_id) ";
166
+
167
+
168
+
169
+
170
+
171
+ $sql .= apply_filters( 'inc_archive_search_sql_inner_join', '' );
172
+
173
+
174
+
175
+ $sql .= " WHERE P.post_status='publish' AND P.post_password = '' AND P.post_type ='model' ";
176
+
177
+ $sql .= " AND PM.meta_key='haircategory' ";
178
+
179
+ $sql .= " AND CAST( PM.meta_value AS SIGNED ) ". $hair_data ;
180
+
181
+
182
+
183
+
184
+
185
+ $sql .= apply_filters( 'inc_archive_search_sql_where', '' );
186
+
187
+
188
+
189
+ $sql .= " ORDER BY PM.meta_value";
190
+
191
+ $metas = $wpdb->get_results( $sql, ARRAY_A );
192
+
193
+
194
+
195
+ if(!empty($metas)) {
196
+
197
+ $page_sentaku_dat .= '<ul>';
198
+
199
+ foreach ( $metas as $meta ) {
200
+
201
+ $haircategory_id = $meta['haircategory'];
202
+
203
+
204
+
205
+ foreach($da_haircategory as $meta_box){
206
+
207
+ if( $haircategory_id == $meta_box['id'] ){
208
+
209
+ $page_sentaku_dat .= '<li>';
210
+
211
+ $page_sentaku_dat .= '<input type="checkbox" name="hair[]" value="'.$meta_box['id'].'" id="'.$meta_box['id'].'"';
212
+
213
+
214
+
215
+ if( $hair_id && is_array( $hair_id ) ) {
216
+
217
+ foreach( $hair_id as $meta_box4 ){
218
+
219
+ if( $meta_box4 == $meta_box['id'] ) $page_sentaku_dat .= ' checked="checked"';
220
+
221
+ }
222
+
223
+ }
224
+
225
+
226
+
227
+ $page_sentaku_dat .= ' /><label for="'.$meta_box['id'].'">'.$meta_box['name'].'</label>';
228
+
229
+ $page_sentaku_dat .= '</li>';
230
+
231
+ }
232
+
233
+ }
234
+
235
+ }
236
+
237
+ $page_sentaku_dat .= '</ul>';
238
+
239
+ }
240
+
241
+ $page_sentaku_dat .= '</td>';
242
+
243
+ $page_sentaku_dat .= '</tr>';
244
+
245
+ ```
246
+
247
+
248
+
249
+ ### 条件のコード
250
+
251
+ ```php
252
+
253
+ function da_haircategory_init_model(){
254
+
255
+
256
+
257
+ global $da_haircategory;
258
+
259
+
260
+
261
+ $da_haircategory =
262
+
263
+ array(
264
+
265
+ "1000" => array("id" => "1000","name" => "キッズ男の子"),
266
+
267
+ "1100" => array("id" => "1100","name" => "キッズ女の子"),
268
+
269
+ "1200" => array("id" => "1200","name" => "キッズショート"),
270
+
271
+ "1300" => array("id" => "1300","name" => "キッズセミ"),
272
+
273
+ "1400" => array("id" => "1400","name" => "キッズロング"),
274
+
275
+
276
+
277
+ "1501" => array("id" => "1501","name" => "メンズベリーショート"),
278
+
279
+ "1600" => array("id" => "1600","name" => "メンズショート"),
280
+
281
+ "1700" => array("id" => "1700","name" => "メンズミィディアム"),
282
+
283
+ "1800" => array("id" => "1800","name" => "メンズロング"),
284
+
285
+ "1900" => array("id" => "1900","name" => "メンズ定番"),
286
+
287
+ "2000" => array("id" => "2000","name" => "メンズ個性的"),
288
+
289
+
290
+
291
+ "2001" => array("id" => "2001","name" => "レディースショート"),
292
+
293
+ "2100" => array("id" => "2100","name" => "レディースミィディアム"),
294
+
295
+ "2200" => array("id" => "2200","name" => "レディースロング"),
296
+
297
+ "2300" => array("id" => "2300","name" => "レディース定番"),
298
+
299
+ "2400" => array("id" => "2400","name" => "レディース個性的"),
300
+
301
+ "2500" => array("id" => "2500","name" => "レディースカラー"),
302
+
303
+ "3000" => array("id" => "3000","name" => "レディース人気")
304
+
305
+ );
306
+
307
+
308
+
309
+ }
310
+
311
+ add_action('init', 'da_haircategory_init_model');
312
+
313
+ ```