質問編集履歴

11

追記

2019/10/27 04:57

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -497,3 +497,19 @@
497
497
  <?php endif; ?>
498
498
 
499
499
  ```
500
+
501
+
502
+
503
+ ### ※追記5
504
+
505
+ WordPressフォーラムにて、プラグインのご紹介をしていただきました。
506
+
507
+ 「Search & Filter」`https://ja.wordpress.org/plugins/search-filter/`
508
+
509
+ ドキュメント:`http://docs.designsandcode.com/search-filter/`
510
+
511
+ かなり私がやりたいことに近いです。
512
+
513
+ ですが、少しプラグイン無しにこだわっているところがあるので
514
+
515
+ 解決しなければ、こちらのプラグインを使おうかと思います。

10

追記

2019/10/27 04:57

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -238,7 +238,7 @@
238
238
 
239
239
  WordPressフォーラム先で、下記の参考サイトを紹介して頂き、
240
240
 
241
- https://illustswitch.com/wordpress-search-filter/
241
+ `https://illustswitch.com/wordpress-search-filter/`
242
242
 
243
243
 
244
244
 
@@ -264,6 +264,142 @@
264
264
 
265
265
  ```PHP
266
266
 
267
+ 39 <h1>検索結果</h1>
268
+
269
+ 40 <?php
270
+
271
+ 41 if(is_array($get_cats)) {
272
+
273
+ 42 echo '<p>カテゴリー:';
274
+
275
+ 43 foreach ($get_cats as $val) {
276
+
277
+ 44 $p_term = get_term_by('slug', $val, 'products_cat_brand');
278
+
279
+ 45 echo $p_term->name;
280
+
281
+ 46 if ($val !== end($get_cats)) {
282
+
283
+ 47 echo ', ';
284
+
285
+ 48 }
286
+
287
+ 49 }
288
+
289
+ 50 echo '</p>';
290
+
291
+ 51 } ?>
292
+
293
+ ```
294
+
295
+
296
+
297
+ ご紹介していただいたサイトを元に、作成してみたコードを下に記載しておきますので、
298
+
299
+ ご教示のほど、よろしくお願いいたします。
300
+
301
+ ### searchform.php
302
+
303
+ ```PHP
304
+
305
+ <form role="search" method="get" id="searchform" action="<?php echo esc_url(home_url('/')); ?>products/">
306
+
307
+
308
+
309
+ <h2>カテゴリー</h2>
310
+
311
+ <?php
312
+
313
+ $taxonomies_args = array(
314
+
315
+ 'orderby' => 'name',
316
+
317
+ 'order' => 'ASC',
318
+
319
+ );
320
+
321
+ $taxonomies = get_terms( 'products_cat_brand', $taxonomies_args );
322
+
323
+ foreach($taxonomies as $taxonomies) :
324
+
325
+ ?>
326
+
327
+ <label><input type="checkbox" name="get_cats[]" value="<?php echo $taxonomies->slug; ?>"><?php echo $taxonomies->name; ?></label>
328
+
329
+ <?php endforeach; ?>
330
+
331
+
332
+
333
+ <h2><?php _x( 'Search for:', 'label' ); ?>キーワード</h2>
334
+
335
+ <input type="text" value="<?php echo get_search_query(); ?>" name="s" id="s" placeholder="キーワードを入力してください" />
336
+
337
+
338
+
339
+ <input type="submit" value="検索" />
340
+
341
+ </form>
342
+
343
+ ```
344
+
345
+ ### search.php
346
+
347
+ ```PHP
348
+
349
+ <?php
350
+
351
+ $s = $_GET['s'];
352
+
353
+ $get_cats = $_GET['get_cats'];
354
+
355
+ $get_tags = $_GET['get_tags'];
356
+
357
+
358
+
359
+ if($get_cats) {
360
+
361
+ $tax_ary[] = array(
362
+
363
+ 'taxonomy' => 'products_cat_brand',
364
+
365
+ 'field' => 'slug',
366
+
367
+ 'terms' => $get_cats,
368
+
369
+ 'operator' => 'IN', //ANDかIN
370
+
371
+ );
372
+
373
+ }
374
+
375
+ if($get_tags) {
376
+
377
+ $tax_ary[] = array(
378
+
379
+ 'taxonomy' => 'products_cat_brand',
380
+
381
+ 'field' => 'slug',
382
+
383
+ 'terms' => $get_tags,
384
+
385
+ 'operator' => 'IN', //ANDかIN
386
+
387
+ );
388
+
389
+ }
390
+
391
+ ?>
392
+
393
+ <?php if (!($s || $get_cats || $get_tags)): ?>
394
+
395
+ <p>検索条件を指定してください</p>
396
+
397
+ <?php get_search_form(); ?>
398
+
399
+ <?php else: ?>
400
+
401
+
402
+
267
403
  <h1>検索結果</h1>
268
404
 
269
405
  <?php
@@ -290,210 +426,74 @@
290
426
 
291
427
  } ?>
292
428
 
429
+ <?php
430
+
431
+ if(is_array($get_tags)) {
432
+
433
+ echo '<p>タグ:';
434
+
435
+ foreach ($get_tags as $val) {
436
+
437
+ $s_term = get_term_by('slug', $val, 'products_cat_brand');
438
+
439
+ echo $s_term->name;
440
+
441
+ if ($val !== end($get_tags)) {
442
+
443
+ echo ', ';
444
+
445
+ }
446
+
447
+ }
448
+
449
+ echo '</p>';
450
+
451
+ } ?>
452
+
453
+ <?php
454
+
455
+ if($s) { echo '<p>キーワード:'.$s.'</p>'; } ?>
456
+
457
+
458
+
459
+ <?php
460
+
461
+ $my_query = new WP_Query( array(
462
+
463
+ 'paged' => get_query_var('paged'),
464
+
465
+ 'post_type' => 'post',
466
+
467
+ 'tax_query' => $tax_ary,
468
+
469
+ 'relation' => 'AND', //ANDかOR
470
+
471
+ 's' => $s,
472
+
473
+ )); ?>
474
+
475
+ <?php if($my_query->have_posts() ) : ?>
476
+
477
+ <ul>
478
+
479
+ <?php while( $my_query->have_posts()) : $my_query->the_post(); ?>
480
+
481
+ <li><a href="<?php the_permalink() ?>"><?php the_title(); ?></a>
482
+
483
+ </li>
484
+
485
+ <?php endwhile; ?>
486
+
487
+ </ul>
488
+
489
+ <?php else: ?>
490
+
491
+ <p>結果が見つかりませんでした。</p>
492
+
493
+ <?php endif; ?>
494
+
495
+ <?php get_search_form(); ?>
496
+
497
+ <?php endif; ?>
498
+
293
499
  ```
294
-
295
-
296
-
297
- ご紹介していただいたサイトを元に、作成してみたコードを下に記載しておきますので、
298
-
299
- ご教示のほど、よろしくお願いいたします。
300
-
301
- ### searchform.php
302
-
303
- ```PHP
304
-
305
- <form role="search" method="get" id="searchform" action="<?php echo esc_url(home_url('/')); ?>products/">
306
-
307
-
308
-
309
- <h2>カテゴリー</h2>
310
-
311
- <?php
312
-
313
- $taxonomies_args = array(
314
-
315
- 'orderby' => 'name',
316
-
317
- 'order' => 'ASC',
318
-
319
- );
320
-
321
- $taxonomies = get_terms( 'products_cat_brand', $taxonomies_args );
322
-
323
- foreach($taxonomies as $taxonomies) :
324
-
325
- ?>
326
-
327
- <label><input type="checkbox" name="get_cats[]" value="<?php echo $taxonomies->slug; ?>"><?php echo $taxonomies->name; ?></label>
328
-
329
- <?php endforeach; ?>
330
-
331
-
332
-
333
- <h2><?php _x( 'Search for:', 'label' ); ?>キーワード</h2>
334
-
335
- <input type="text" value="<?php echo get_search_query(); ?>" name="s" id="s" placeholder="キーワードを入力してください" />
336
-
337
-
338
-
339
- <input type="submit" value="検索" />
340
-
341
- </form>
342
-
343
- ```
344
-
345
- ### search.php
346
-
347
- ```PHP
348
-
349
- <?php
350
-
351
- $s = $_GET['s'];
352
-
353
- $get_cats = $_GET['get_cats'];
354
-
355
- $get_tags = $_GET['get_tags'];
356
-
357
-
358
-
359
- if($get_cats) {
360
-
361
- $tax_ary[] = array(
362
-
363
- 'taxonomy' => 'products_cat_brand',
364
-
365
- 'field' => 'slug',
366
-
367
- 'terms' => $get_cats,
368
-
369
- 'operator' => 'IN', //ANDかIN
370
-
371
- );
372
-
373
- }
374
-
375
- if($get_tags) {
376
-
377
- $tax_ary[] = array(
378
-
379
- 'taxonomy' => 'products_cat_brand',
380
-
381
- 'field' => 'slug',
382
-
383
- 'terms' => $get_tags,
384
-
385
- 'operator' => 'IN', //ANDかIN
386
-
387
- );
388
-
389
- }
390
-
391
- ?>
392
-
393
- <?php if (!($s || $get_cats || $get_tags)): ?>
394
-
395
- <p>検索条件を指定してください</p>
396
-
397
- <?php get_search_form(); ?>
398
-
399
- <?php else: ?>
400
-
401
-
402
-
403
- <h1>検索結果</h1>
404
-
405
- <?php
406
-
407
- if(is_array($get_cats)) {
408
-
409
- echo '<p>カテゴリー:';
410
-
411
- foreach ($get_cats as $val) {
412
-
413
- $p_term = get_term_by('slug', $val, 'products_cat_brand');
414
-
415
- echo $p_term->name;
416
-
417
- if ($val !== end($get_cats)) {
418
-
419
- echo ', ';
420
-
421
- }
422
-
423
- }
424
-
425
- echo '</p>';
426
-
427
- } ?>
428
-
429
- <?php
430
-
431
- if(is_array($get_tags)) {
432
-
433
- echo '<p>タグ:';
434
-
435
- foreach ($get_tags as $val) {
436
-
437
- $s_term = get_term_by('slug', $val, 'products_cat_brand');
438
-
439
- echo $s_term->name;
440
-
441
- if ($val !== end($get_tags)) {
442
-
443
- echo ', ';
444
-
445
- }
446
-
447
- }
448
-
449
- echo '</p>';
450
-
451
- } ?>
452
-
453
- <?php
454
-
455
- if($s) { echo '<p>キーワード:'.$s.'</p>'; } ?>
456
-
457
-
458
-
459
- <?php
460
-
461
- $my_query = new WP_Query( array(
462
-
463
- 'paged' => get_query_var('paged'),
464
-
465
- 'post_type' => 'post',
466
-
467
- 'tax_query' => $tax_ary,
468
-
469
- 'relation' => 'AND', //ANDかOR
470
-
471
- 's' => $s,
472
-
473
- )); ?>
474
-
475
- <?php if($my_query->have_posts() ) : ?>
476
-
477
- <ul>
478
-
479
- <?php while( $my_query->have_posts()) : $my_query->the_post(); ?>
480
-
481
- <li><a href="<?php the_permalink() ?>"><?php the_title(); ?></a>
482
-
483
- </li>
484
-
485
- <?php endwhile; ?>
486
-
487
- </ul>
488
-
489
- <?php else: ?>
490
-
491
- <p>結果が見つかりませんでした。</p>
492
-
493
- <?php endif; ?>
494
-
495
- <?php get_search_form(); ?>
496
-
497
- <?php endif; ?>
498
-
499
- ```

9

hennsyuu

2019/10/27 04:29

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -2,15 +2,15 @@
2
2
 
3
3
 
4
4
 
5
- https://kotori-blog.com/wordpress/refinement_search/#refinement6_1
5
+ `https://kotori-blog.com/wordpress/refinement_search/#refinement6_1`
6
6
 
7
7
  こちらの記事を参考に、ターム絞り込み検索を実装しました。
8
8
 
9
9
 
10
10
 
11
- 検索結果ページ(search.php)を作成し、こちらの記事を参考に
11
+ 検索結果ページ`(search.php)`を作成し、こちらの記事を参考に
12
-
12
+
13
- search.phpを作成したのですが、チェックした記事が表示されず、
13
+ `search.php`を作成したのですが、チェックした記事が表示されず、
14
14
 
15
15
  全く関係ないものが何件か表示されます。
16
16
 
@@ -34,12 +34,10 @@
34
34
 
35
35
  下記のコードは`searchform.php`と`search.php`になります。
36
36
 
37
+ ### searchform.php
38
+
37
39
  ```PHP
38
40
 
39
- searchform.php
40
-
41
-
42
-
43
41
  <form method="get" id="search-form" action="<?php bloginfo('url'); ?>">
44
42
 
45
43
  <label for="s" class="assistive-text">検索</label>
@@ -78,14 +76,10 @@
78
76
 
79
77
  ```
80
78
 
81
-
79
+ ### search.php
82
80
 
83
81
  ```PHP
84
82
 
85
- search.php
86
-
87
-
88
-
89
83
  <?php
90
84
 
91
85
  $s = $_GET['s'];
@@ -196,7 +190,7 @@
196
190
 
197
191
  var_dump( $post_tags ); ?>`
198
192
 
199
- こちらのコードを、search.phpに入力し値を確認してみたところ、
193
+ こちらのコードを、`search.php`に入力し値を確認してみたところ、
200
194
 
201
195
  `string(0) ""`と書いておりました。
202
196
 
@@ -206,7 +200,7 @@
206
200
 
207
201
  WordPressフォーラムにて、「もう少し具体的にやりたいことを教えてほしい。」と仰っていただいたため追記いたします
208
202
 
209
- https://ja.wordpress.org/support/topic/%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%A0%E6%8A%95%E7%A8%BF%E3%82%BF%E3%82%A4%E3%83%97%E3%81%AE%E7%B5%9E%E3%82%8A%E8%BE%BC%E3%81%BF%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6/
203
+ `https://ja.wordpress.org/support/topic/%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%A0%E6%8A%95%E7%A8%BF%E3%82%BF%E3%82%A4%E3%83%97%E3%81%AE%E7%B5%9E%E3%82%8A%E8%BE%BC%E3%81%BF%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6/`
210
204
 
211
205
 
212
206
 
@@ -218,7 +212,7 @@
218
212
 
219
213
 
220
214
 
221
- チェックをしたタームが付いている全ての記事を検索結果(search.php)で表示したいです。(‘operator’=>’AND’で言うところの、ORと思っていただければと思います。)
215
+ チェックをしたタームが付いている全ての記事を検索結果(`search.php`)で表示したいです。(`‘operator’=>’AND’`で言うところの、`OR`と思っていただければと思います。)
222
216
 
223
217
 
224
218
 
@@ -252,9 +246,9 @@
252
246
 
253
247
 
254
248
 
255
- search.phpを作成せず、searchform.phpだけを作成した場合、不具合なくカテゴリー検索が出来たのですが、
249
+ `search.php`を作成せず、`searchform.php`だけを作成した場合、不具合なくカテゴリー検索が出来たのですが、
256
-
250
+
257
- search.phpを作成すると、「検索結果が見つかりませんでした。」となり、やはり検索結果がありません。
251
+ `search.php`を作成すると、「検索結果が見つかりませんでした。」となり、やはり検索結果がありません。
258
252
 
259
253
 
260
254
 
@@ -266,14 +260,10 @@
266
260
 
267
261
  が、きちんと選択したカテゴリーが表示されています。
268
262
 
269
-
263
+ ### search.php
270
264
 
271
265
  ```PHP
272
266
 
273
- search.php
274
-
275
-
276
-
277
267
  <h1>検索結果</h1>
278
268
 
279
269
  <?php
@@ -308,12 +298,10 @@
308
298
 
309
299
  ご教示のほど、よろしくお願いいたします。
310
300
 
301
+ ### searchform.php
302
+
311
303
  ```PHP
312
304
 
313
- search.php
314
-
315
-
316
-
317
305
  <form role="search" method="get" id="searchform" action="<?php echo esc_url(home_url('/')); ?>products/">
318
306
 
319
307
 
@@ -354,12 +342,10 @@
354
342
 
355
343
  ```
356
344
 
345
+ ### search.php
346
+
357
347
  ```PHP
358
348
 
359
- search.php
360
-
361
-
362
-
363
349
  <?php
364
350
 
365
351
  $s = $_GET['s'];

8

修正

2019/10/27 04:27

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -206,7 +206,7 @@
206
206
 
207
207
  WordPressフォーラムにて、「もう少し具体的にやりたいことを教えてほしい。」と仰っていただいたため追記いたします
208
208
 
209
- https://ja.wordpress.org/support/topic/%e3%82%ab%e3%82%b9%e3%82%bf%e3%83%a0%e6%8a%95%e7%a8%bf%e3%82%bf%e3%82%a4%e3%83%97%e3%81%ae%e7%b5%9e%e3%82%8a%e8%be%bc%e3%81%bf%e3%81%ab%e3%81%a4%e3%81%84%e3%81%a6/#post-11659599
209
+ https://ja.wordpress.org/support/topic/%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%A0%E6%8A%95%E7%A8%BF%E3%82%BF%E3%82%A4%E3%83%97%E3%81%AE%E7%B5%9E%E3%82%8A%E8%BE%BC%E3%81%BF%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6/
210
210
 
211
211
 
212
212
 

7

追記

2019/10/27 04:18

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -206,6 +206,8 @@
206
206
 
207
207
  WordPressフォーラムにて、「もう少し具体的にやりたいことを教えてほしい。」と仰っていただいたため追記いたします
208
208
 
209
+ https://ja.wordpress.org/support/topic/%e3%82%ab%e3%82%b9%e3%82%bf%e3%83%a0%e6%8a%95%e7%a8%bf%e3%82%bf%e3%82%a4%e3%83%97%e3%81%ae%e7%b5%9e%e3%82%8a%e8%be%bc%e3%81%bf%e3%81%ab%e3%81%a4%e3%81%84%e3%81%a6/#post-11659599
210
+
209
211
 
210
212
 
211
213
  商品を管理する、カスタム投稿タイプを作成しました。

6

追記

2019/10/27 04:18

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -202,7 +202,11 @@
202
202
 
203
203
 
204
204
 
205
- ### ※追記2 動機
205
+ ### ※追記2
206
+
207
+ WordPressフォーラムにて、「もう少し具体的にやりたいことを教えてほしい。」と仰っていただいたため追記いたします
208
+
209
+
206
210
 
207
211
  商品を管理する、カスタム投稿タイプを作成しました。
208
212
 

5

編集

2019/10/27 04:17

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -224,7 +224,7 @@
224
224
 
225
225
 
226
226
 
227
- ### 追記3
227
+ ### 追記3
228
228
 
229
229
  ※追記です。
230
230
 

4

追記

2019/10/27 04:13

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -199,3 +199,309 @@
199
199
  こちらのコードを、search.phpに入力し値を確認してみたところ、
200
200
 
201
201
  `string(0) ""`と書いておりました。
202
+
203
+
204
+
205
+ ### ※追記2 動機
206
+
207
+ 商品を管理する、カスタム投稿タイプを作成しました。
208
+
209
+ 商品数が膨大なため、チェックボックスを使った複数のタクソノミー内の
210
+
211
+ ターム絞り込み検索を実装したいです。(test1タクソノミー内のtest2ターム, test3タクソノミー内のtest4ターム、という風に複数のタクソノミー内のタームにチェックをしたい。)
212
+
213
+
214
+
215
+ チェックをしたタームが付いている全ての記事を検索結果(search.php)で表示したいです。(‘operator’=>’AND’で言うところの、ORと思っていただければと思います。)
216
+
217
+
218
+
219
+ 本文にも記載してます通り、参考URLを見ながら作成してみたのですが、チェックしたタームの記事ではなく、固定ページのページ一覧が表示されてしまいます。
220
+
221
+
222
+
223
+ また、検索結果ページの記事一覧のスタイルを、記事のタイトル +サムネイル+ 本文の抜粋 を表示したいのですが、今現時点では記事の内容全てが検索結果に出るようになってしまっています。
224
+
225
+
226
+
227
+ ### ※追記3
228
+
229
+ ※追記です。
230
+
231
+ 「また、検索結果ページの記事一覧のスタイルを、記事のタイトル +サムネイル+ 本文の抜粋 を表示したいのですが」と言ったんですが、
232
+
233
+ テーマのデフォルト一覧表示形式で問題ないです。(Lightningテーマを使用しております。)
234
+
235
+
236
+
237
+ ## ※追記4
238
+
239
+ WordPressフォーラム先で、下記の参考サイトを紹介して頂き、
240
+
241
+ https://illustswitch.com/wordpress-search-filter/
242
+
243
+
244
+
245
+ ご紹介いただいた、サイトを参考に作成してみたのですが
246
+
247
+
248
+
249
+ search.phpを作成せず、searchform.phpだけを作成した場合、不具合なくカテゴリー検索が出来たのですが、
250
+
251
+ search.phpを作成すると、「検索結果が見つかりませんでした。」となり、やはり検索結果がありません。
252
+
253
+
254
+
255
+ 以前のコードでは、固定ページは表示されていたのですが、現状では固定ページさえも表示されなくなってしまいました。
256
+
257
+
258
+
259
+ 検索結果ページでは、以下のコードの部分(ページでは「カテゴリー:(選択したカテゴリー)」)
260
+
261
+ が、きちんと選択したカテゴリーが表示されています。
262
+
263
+
264
+
265
+ ```PHP
266
+
267
+ search.php
268
+
269
+
270
+
271
+ <h1>検索結果</h1>
272
+
273
+ <?php
274
+
275
+ if(is_array($get_cats)) {
276
+
277
+ echo '<p>カテゴリー:';
278
+
279
+ foreach ($get_cats as $val) {
280
+
281
+ $p_term = get_term_by('slug', $val, 'products_cat_brand');
282
+
283
+ echo $p_term->name;
284
+
285
+ if ($val !== end($get_cats)) {
286
+
287
+ echo ', ';
288
+
289
+ }
290
+
291
+ }
292
+
293
+ echo '</p>';
294
+
295
+ } ?>
296
+
297
+ ```
298
+
299
+
300
+
301
+ ご紹介していただいたサイトを元に、作成してみたコードを下に記載しておきますので、
302
+
303
+ ご教示のほど、よろしくお願いいたします。
304
+
305
+ ```PHP
306
+
307
+ search.php
308
+
309
+
310
+
311
+ <form role="search" method="get" id="searchform" action="<?php echo esc_url(home_url('/')); ?>products/">
312
+
313
+
314
+
315
+ <h2>カテゴリー</h2>
316
+
317
+ <?php
318
+
319
+ $taxonomies_args = array(
320
+
321
+ 'orderby' => 'name',
322
+
323
+ 'order' => 'ASC',
324
+
325
+ );
326
+
327
+ $taxonomies = get_terms( 'products_cat_brand', $taxonomies_args );
328
+
329
+ foreach($taxonomies as $taxonomies) :
330
+
331
+ ?>
332
+
333
+ <label><input type="checkbox" name="get_cats[]" value="<?php echo $taxonomies->slug; ?>"><?php echo $taxonomies->name; ?></label>
334
+
335
+ <?php endforeach; ?>
336
+
337
+
338
+
339
+ <h2><?php _x( 'Search for:', 'label' ); ?>キーワード</h2>
340
+
341
+ <input type="text" value="<?php echo get_search_query(); ?>" name="s" id="s" placeholder="キーワードを入力してください" />
342
+
343
+
344
+
345
+ <input type="submit" value="検索" />
346
+
347
+ </form>
348
+
349
+ ```
350
+
351
+ ```PHP
352
+
353
+ search.php
354
+
355
+
356
+
357
+ <?php
358
+
359
+ $s = $_GET['s'];
360
+
361
+ $get_cats = $_GET['get_cats'];
362
+
363
+ $get_tags = $_GET['get_tags'];
364
+
365
+
366
+
367
+ if($get_cats) {
368
+
369
+ $tax_ary[] = array(
370
+
371
+ 'taxonomy' => 'products_cat_brand',
372
+
373
+ 'field' => 'slug',
374
+
375
+ 'terms' => $get_cats,
376
+
377
+ 'operator' => 'IN', //ANDかIN
378
+
379
+ );
380
+
381
+ }
382
+
383
+ if($get_tags) {
384
+
385
+ $tax_ary[] = array(
386
+
387
+ 'taxonomy' => 'products_cat_brand',
388
+
389
+ 'field' => 'slug',
390
+
391
+ 'terms' => $get_tags,
392
+
393
+ 'operator' => 'IN', //ANDかIN
394
+
395
+ );
396
+
397
+ }
398
+
399
+ ?>
400
+
401
+ <?php if (!($s || $get_cats || $get_tags)): ?>
402
+
403
+ <p>検索条件を指定してください</p>
404
+
405
+ <?php get_search_form(); ?>
406
+
407
+ <?php else: ?>
408
+
409
+
410
+
411
+ <h1>検索結果</h1>
412
+
413
+ <?php
414
+
415
+ if(is_array($get_cats)) {
416
+
417
+ echo '<p>カテゴリー:';
418
+
419
+ foreach ($get_cats as $val) {
420
+
421
+ $p_term = get_term_by('slug', $val, 'products_cat_brand');
422
+
423
+ echo $p_term->name;
424
+
425
+ if ($val !== end($get_cats)) {
426
+
427
+ echo ', ';
428
+
429
+ }
430
+
431
+ }
432
+
433
+ echo '</p>';
434
+
435
+ } ?>
436
+
437
+ <?php
438
+
439
+ if(is_array($get_tags)) {
440
+
441
+ echo '<p>タグ:';
442
+
443
+ foreach ($get_tags as $val) {
444
+
445
+ $s_term = get_term_by('slug', $val, 'products_cat_brand');
446
+
447
+ echo $s_term->name;
448
+
449
+ if ($val !== end($get_tags)) {
450
+
451
+ echo ', ';
452
+
453
+ }
454
+
455
+ }
456
+
457
+ echo '</p>';
458
+
459
+ } ?>
460
+
461
+ <?php
462
+
463
+ if($s) { echo '<p>キーワード:'.$s.'</p>'; } ?>
464
+
465
+
466
+
467
+ <?php
468
+
469
+ $my_query = new WP_Query( array(
470
+
471
+ 'paged' => get_query_var('paged'),
472
+
473
+ 'post_type' => 'post',
474
+
475
+ 'tax_query' => $tax_ary,
476
+
477
+ 'relation' => 'AND', //ANDかOR
478
+
479
+ 's' => $s,
480
+
481
+ )); ?>
482
+
483
+ <?php if($my_query->have_posts() ) : ?>
484
+
485
+ <ul>
486
+
487
+ <?php while( $my_query->have_posts()) : $my_query->the_post(); ?>
488
+
489
+ <li><a href="<?php the_permalink() ?>"><?php the_title(); ?></a>
490
+
491
+ </li>
492
+
493
+ <?php endwhile; ?>
494
+
495
+ </ul>
496
+
497
+ <?php else: ?>
498
+
499
+ <p>結果が見つかりませんでした。</p>
500
+
501
+ <?php endif; ?>
502
+
503
+ <?php get_search_form(); ?>
504
+
505
+ <?php endif; ?>
506
+
507
+ ```

3

追記

2019/10/27 04:13

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -187,3 +187,15 @@
187
187
  wp_reset_query(); ?>
188
188
 
189
189
  ```
190
+
191
+
192
+
193
+ ### ※追記
194
+
195
+ `<?php $post_tags = get_query_var( 'post_tag' );
196
+
197
+ var_dump( $post_tags ); ?>`
198
+
199
+ こちらのコードを、search.phpに入力し値を確認してみたところ、
200
+
201
+ `string(0) ""`と書いておりました。

2

編集

2019/10/26 09:55

投稿

退会済みユーザー
test CHANGED
@@ -1 +1 @@
1
- ターム絞り込み検索結果ページ(search.php)作成につ
1
+ ターム絞り込み チェックした記事が表示されな
test CHANGED
@@ -1,20 +1,90 @@
1
- https://kotori-blog.com/wordpress/refinement_search/#refinement6_1
1
+ テーマは「Lightning」を使用しております。
2
2
 
3
3
 
4
4
 
5
- テーマは「Lightning」を使用しております。
5
+ https://kotori-blog.com/wordpress/refinement_search/#refinement6_1
6
6
 
7
7
  こちらの記事を参考に、ターム絞り込み検索を実装しました。
8
8
 
9
+
10
+
9
11
  検索結果ページ(search.php)を作成し、こちらの記事を参考に
10
12
 
11
- search.phpを作成したのですが、ダーやフッター、サイドバーが表示されず
13
+ search.phpを作成したのですが、チェクした記事が表示されず
12
14
 
15
+ 全く関係ないものが何件か表示されます。
16
+
17
+
18
+
19
+ チェックボックスをチェックせずに、フリーワードだけを入力した場合は、
20
+
21
+ 問題なく文句が含まれている記事が出てきます。
22
+
23
+
24
+
25
+ また、記事のサムネイル付き抜粋ではなく、記事の中身そのものが
26
+
27
+ 一覧に表示されてしまいます。
28
+
29
+
30
+
13
- なかなか思ったように検索結果ペ作成きません
31
+ この場合どのようなコ書くのが正しいのしょうか
32
+
33
+
34
+
35
+ 下記のコードは`searchform.php`と`search.php`になります。
36
+
37
+ ```PHP
38
+
39
+ searchform.php
40
+
41
+
42
+
43
+ <form method="get" id="search-form" action="<?php bloginfo('url'); ?>">
44
+
45
+ <label for="s" class="assistive-text">検索</label>
46
+
47
+ <input type="text" name="s" id="s" placeholder="検索" />
48
+
49
+ <div>ブランドから選ぶ</div>
50
+
51
+ <?php
52
+
53
+ $taxonomy_name = 'products_cat_brand';
54
+
55
+ $taxonomys = get_terms($taxonomy_name, array('hide_empty' => false));
56
+
57
+ if(!is_wp_error($taxonomys) && count($taxonomys)):
58
+
59
+ foreach($taxonomys as $taxonomy):
60
+
61
+ $tax_posts = get_posts(array('post_type' => get_post_type('products'), 'taxonomy' => $taxonomy_name, 'term' => $taxonomy->slug ) );
62
+
63
+ ?>
64
+
65
+ <label><input type="checkbox" name="post_tag[]" value="<?php echo $taxonomy->slug; ?>"><?php echo $taxonomy->name; ?></label><br>
66
+
67
+ <?php
68
+
69
+ endforeach;
70
+
71
+ endif;
72
+
73
+ ?>
74
+
75
+ <input type="submit" value="検索" />
76
+
77
+ </form>
78
+
79
+ ```
14
80
 
15
81
 
16
82
 
17
83
  ```PHP
84
+
85
+ search.php
86
+
87
+
18
88
 
19
89
  <?php
20
90
 
@@ -30,7 +100,7 @@
30
100
 
31
101
  $taxquerysp[] = array(
32
102
 
33
- 'taxonomy'=>'post_tag',
103
+ 'taxonomy'=>'products_cat_brand',
34
104
 
35
105
  'terms'=> $post_tag,
36
106
 
@@ -60,11 +130,11 @@
60
130
 
61
131
  if ($val === end($post_tag)) {
62
132
 
63
- echo get_term_by('slug',$val,"post_tag")->name;
133
+ echo get_term_by('slug',$val,"products_cat_brand")->name;
64
134
 
65
135
  }else{
66
136
 
67
- echo get_term_by('slug',$val,"post_tag")->name.", ";
137
+ echo get_term_by('slug',$val,"products_cat_brand")->name.", ";
68
138
 
69
139
  }
70
140
 
@@ -117,29 +187,3 @@
117
187
  wp_reset_query(); ?>
118
188
 
119
189
  ```
120
-
121
-
122
-
123
- こちらのコードなんですが、しっかりと選択したタームがついている記事は
124
-
125
- 表示されるのですが、先述の通りヘッダーやフッター、CSS等が反応していません。
126
-
127
-
128
-
129
- そこで、1行目に`<?php get_header(); ?>`やフッターの位置に`<?php get_footer(); ?>`
130
-
131
- を記述したところ、無事表示されたのですが
132
-
133
-
134
-
135
- 検索結果が抜粋ではなく、記事の中身まるごと検索結果一覧に表示されてしまいます。
136
-
137
-
138
-
139
- この場合どのように記述するのが、正解なんでしょうか。
140
-
141
-
142
-
143
- 上記のコードをどこかに記述するだけで、記事一覧以外のデザインは、
144
-
145
- 他のページと同じようにできないのでしょうか。

1

編集

2019/10/26 09:06

投稿

退会済みユーザー
test CHANGED
@@ -1 +1 @@
1
- ターム絞り込み検索後の検索結果ページにチェックしたタームの記事を表示した
1
+ ターム絞り込み検索結果ページ(search.php)作成
test CHANGED
File without changes