回答編集履歴

2

WP_Query 版に書き換えて追記

2018/12/14 01:30

投稿

CHERRY
CHERRY

スコア25171

test CHANGED
@@ -79,3 +79,109 @@
79
79
  * [WordPress カスタムフィールドの値で条件を絞り込み、ループで記事一覧を表示する](https://www.kerenor.jp/loop-sorted-by-customfield/)
80
80
 
81
81
  * [Advanced Custom Fieldsのチェックボックスは検索に向いてない](https://watanabemitsutoshi.com/advanced-custom-fields-meta)
82
+
83
+
84
+
85
+ ----
86
+
87
+ (追記)
88
+
89
+
90
+
91
+ 非推奨の query_posts をやめて、WP_Query で、下記のように書き換えたほうがようでしょう。(変更部分のみ記載)
92
+
93
+
94
+
95
+ ```
96
+
97
+ //meta_query用
98
+
99
+ $metaquerysp = array();
100
+
101
+ if($content_category){
102
+
103
+ foreach($content_category as $val){
104
+
105
+ $metaquerysp[] = array(
106
+
107
+ 'key'=>'content_category',
108
+
109
+ 'value'=> $val,
110
+
111
+ );
112
+
113
+ }
114
+
115
+ $metaquerysp['relation'] = 'OR'; // relation は、$content_category があるときだけ
116
+
117
+ }
118
+
119
+ ?>
120
+
121
+ ```
122
+
123
+
124
+
125
+ ```
126
+
127
+ <div>検索結果</div>
128
+
129
+
130
+
131
+ <?php
132
+
133
+ $args = array(
134
+
135
+ 's' => $s,
136
+
137
+ );
138
+
139
+ if( !empty($metaquerysp) ){
140
+
141
+ // $metaquerysp が、空じゃない時に meta_query 条件を追加。
142
+
143
+ $args['meta_query'] = $metaquerysp;
144
+
145
+ }
146
+
147
+
148
+
149
+ // query_posts を WP_Query に変更
150
+
151
+ $the_query = new WP_Query( $args );
152
+
153
+ if ( $the_query->have_posts() ) :
154
+
155
+ while ( $the_query->have_posts() ) :
156
+
157
+ $the_query->the_post();
158
+
159
+ ?>
160
+
161
+ <div><?php the_title(); ?></div>
162
+
163
+ <div><?php the_content(); ?></div>
164
+
165
+ <?php
166
+
167
+ endwhile;
168
+
169
+ wp_reset_postdata();
170
+
171
+ else:
172
+
173
+ ?>
174
+
175
+ <div>該当なし</div>
176
+
177
+ <?php endif; ?>
178
+
179
+ ```
180
+
181
+
182
+
183
+
184
+
185
+ 参考:
186
+
187
+ * [https://wpdocs.osdn.jp/関数リファレンス/WP_Query](https://wpdocs.osdn.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/WP_Query)

1

追記修正。URLを追加。

2018/12/14 01:30

投稿

CHERRY
CHERRY

スコア25171

test CHANGED
@@ -1,6 +1,4 @@
1
- なるほど、ACF をお使いですか。
1
+ なるほど、[Advanced Custom Fields (ACF)](https://www.advancedcustomfields.com) をお使いですか。
2
-
3
-
4
2
 
5
3
 
6
4
 
@@ -8,7 +6,11 @@
8
6
 
9
7
 
10
8
 
9
+ 対応方法としては、
10
+
11
+
12
+
11
- 対応方法としては、フォームの部分で、
13
+ まず、フォームの部分で、
12
14
 
13
15
 
14
16
 
@@ -26,4 +28,54 @@
26
28
 
27
29
 
28
30
 
29
- のように 値とラベルを使うようにするかあたりでしょうか
31
+ のように 値とラベルを使うようにする。
32
+
33
+
34
+
35
+ 検索の方も修正が必要で、
36
+
37
+
38
+
39
+ > $metaquerysp[] = array(
40
+
41
+ > 'key'=>'content_category',
42
+
43
+ > 'value'=> $val,
44
+
45
+ > );
46
+
47
+ > }
48
+
49
+
50
+
51
+ は、compare を省略しているので、 `=` で、比較しますが、 ACF のチェックボックスは、 `=` で比較できません。
52
+
53
+
54
+
55
+ ```
56
+
57
+ $metaquerysp[] = array(
58
+
59
+ 'key'=>'content_category',
60
+
61
+ 'value'=> $val,
62
+
63
+ 'compare' => 'LIKE',
64
+
65
+ );
66
+
67
+ ```
68
+
69
+ のように compare に LIKE を指定する必要があります。
70
+
71
+
72
+
73
+
74
+
75
+ 参考URL
76
+
77
+ * [WP_query using meta_query for an ACF checkbox field](https://support.advancedcustomfields.com/forums/topic/wp_query-using-meta_query-for-an-acf-checkbox-field/)
78
+
79
+ * [WordPress カスタムフィールドの値で条件を絞り込み、ループで記事一覧を表示する](https://www.kerenor.jp/loop-sorted-by-customfield/)
80
+
81
+ * [Advanced Custom Fieldsのチェックボックスは検索に向いてない](https://watanabemitsutoshi.com/advanced-custom-fields-meta)