回答編集履歴

2

いろいろ修正

2020/03/18 00:20

投稿

marlboro_tata
marlboro_tata

スコア525

test CHANGED
@@ -20,7 +20,7 @@
20
20
 
21
21
  if ( $query->is_search()) {
22
22
 
23
- if(isset( $_GET['cat'])){$cat = $_GET['cat'];}else{$cat = "";}
23
+ if(isset( $_GET['cats'])){$cat = $_GET['cats'];}else{$cat = "";}
24
24
 
25
25
 
26
26
 
@@ -61,3 +61,47 @@
61
61
  参考はこちら
62
62
 
63
63
  [https://wpdocs.osdn.jp/関数リファレンス/WP_Query#.E3.82.BF.E3.82.AF.E3.82.BD.E3.83.8E.E3.83.9F.E3.83.BC.E3.81.AE.E3.83.91.E3.83.A9.E3.83.A1.E3.83.BC.E3.82.BF](https://wpdocs.osdn.jp/関数リファレンス/WP_Query#.E3.82.BF.E3.82.AF.E3.82.BD.E3.83.8E.E3.83.9F.E3.83.BC.E3.81.AE.E3.83.91.E3.83.A9.E3.83.A1.E3.83.BC.E3.82.BF)
64
+
65
+
66
+
67
+
68
+
69
+ 追記の追記
70
+
71
+ 上記コードでもOR検索になってしまうとのことで、調べたところ、パラメータに「?s=」が含まれていないために、カテゴリ検索の方のクエリが、カテゴリのページか記事一覧か何か、とにかく「検索結果」とは別のクエリとして処理されているようでした(そりゃそうだ)
72
+
73
+ カテゴリの方のクエリもcatだとカテゴリ系と誤解されるようなので「name=cats[]」としました。合わせてfunctions.phpのほうのコードも変更してあります。
74
+
75
+ なので、カテゴリ検索の方にも<input type="hidden">を置いて、「?s=」パラメータが追加されるようにしたところ、うまく行きました。検証が下手でごめんなさい。
76
+
77
+
78
+
79
+ ```PHP
80
+
81
+ <aside id="secondary" class="blog-sidebar" role="complementary">
82
+
83
+ <!-- 入力用検索 -->
84
+
85
+ <?php get_search_form(); ?>
86
+
87
+ <!-- カテゴリー検索 -->
88
+
89
+ <form method="get" action="<?php bloginfo( 'url' ); ?>">
90
+
91
+ <input type="hidden" name="s" value="" /><!--追加-->
92
+
93
+ <p>都道府県</p>
94
+
95
+ <?php wp_dropdown_categories('name=cats[]&show_option_none=都道府県&child_of=20'); ?>
96
+
97
+ <p>季節</p>
98
+
99
+ <?php wp_dropdown_categories('name=cats[]&show_option_none=季節&child_of=13'); ?>
100
+
101
+ <input id="submit" type="submit" value="検索" />
102
+
103
+ </form>
104
+
105
+ </aside>
106
+
107
+ ```

1

検証しました

2020/03/18 00:20

投稿

marlboro_tata
marlboro_tata

スコア525

test CHANGED
@@ -1,6 +1,8 @@
1
- 検証できてないので、回答に書くのが嫌だったのですが、
1
+ ~~検証できてないので、回答に書くのが嫌だったのですが、
2
2
 
3
- 追記のお願いのところに書くとコードが読みにくすぎたので、こちらに。。。。
3
+ 追記のお願いのところに書くとコードが読みにくすぎたので、こちらに。。。。~~
4
+
5
+ 検証してみました、当方のWP環境では、下記を functions.php に追加で、カテゴリのAND検索になっています。。。
4
6
 
5
7
 
6
8
 
@@ -16,7 +18,7 @@
16
18
 
17
19
  //検索クエリのカスタマイズ
18
20
 
19
- if ( $query->is_search()){
21
+ if ( $query->is_search()) {
20
22
 
21
23
  if(isset( $_GET['cat'])){$cat = $_GET['cat'];}else{$cat = "";}
22
24
 
@@ -59,7 +61,3 @@
59
61
  参考はこちら
60
62
 
61
63
  [https://wpdocs.osdn.jp/関数リファレンス/WP_Query#.E3.82.BF.E3.82.AF.E3.82.BD.E3.83.8E.E3.83.9F.E3.83.BC.E3.81.AE.E3.83.91.E3.83.A9.E3.83.A1.E3.83.BC.E3.82.BF](https://wpdocs.osdn.jp/関数リファレンス/WP_Query#.E3.82.BF.E3.82.AF.E3.82.BD.E3.83.8E.E3.83.9F.E3.83.BC.E3.81.AE.E3.83.91.E3.83.A9.E3.83.A1.E3.83.BC.E3.82.BF)
62
-
63
-
64
-
65
- これをお試し、、ください(お手数かけます)