質問編集履歴

4

再追記

2021/02/23 09:10

投稿

NNC
NNC

スコア22

test CHANGED
File without changes
test CHANGED
@@ -126,7 +126,7 @@
126
126
 
127
127
 
128
128
 
129
- ### 【追記】
129
+ ### 【追記
130
130
 
131
131
  参考URLでは、カスタムフィールドで行っていたので、
132
132
 
@@ -251,3 +251,87 @@
251
251
 
252
252
 
253
253
  よろしくお願いします。
254
+
255
+
256
+
257
+ ### 【追記2】
258
+
259
+ 頂いた参考サイトを元に、
260
+
261
+ 試行錯誤しながら下記のようにしてみましたが
262
+
263
+ 切り替え用のセレクトボックスでソートを切り替えを行った所、
264
+
265
+ 一旦は並び替わるようになしましたが、再度他のソートにした所、
266
+
267
+ 1回目に切り替えた並び順から変更されない状態になりました。
268
+
269
+ ```
270
+
271
+ // おすすめ
272
+
273
+ $walk_time = array(
274
+
275
+ 'post_type' => 'post',
276
+
277
+ 'tax_query' => array(
278
+
279
+ array(
280
+
281
+ 'taxonomy' => 'walk_time',
282
+
283
+ 'field' => 'slug',
284
+
285
+ ),
286
+
287
+ ),
288
+
289
+ );
290
+
291
+ $walk_time_query = new WP_Query( $walk_time );
292
+
293
+ // 徒歩
294
+
295
+ $walk_time = array(
296
+
297
+ 'post_type' => 'post',
298
+
299
+ 'tax_query' => array(
300
+
301
+ array(
302
+
303
+ 'taxonomy' => 'walk_time',
304
+
305
+ 'field' => 'slug',
306
+
307
+ ),
308
+
309
+ ),
310
+
311
+ );
312
+
313
+ $walk_time_query = new WP_Query( $walk_time );
314
+
315
+ // 値段
316
+
317
+ $max_price = array(
318
+
319
+ 'post_type' => 'post',
320
+
321
+ 'tax_query' => array(
322
+
323
+ array(
324
+
325
+ 'taxonomy' => 'max_price',
326
+
327
+ 'field' => 'slug',
328
+
329
+ ),
330
+
331
+ ),
332
+
333
+ );
334
+
335
+ $max_price_query = new WP_Query( $max_price );
336
+
337
+ ```

3

再検証の追記及びタイトルを一部変更

2021/02/23 09:10

投稿

NNC
NNC

スコア22

test CHANGED
@@ -1 +1 @@
1
- 【Wordpress】検索結果にタクソノミーによるソート切り替え機能(一覧の並び替え機能)を設置したい。
1
+ 【Wordpress】検索結果にタクソノミーまたはACFの値によるソート切り替え(一覧の並び替え)を設置したい。
test CHANGED
@@ -123,3 +123,131 @@
123
123
 
124
124
 
125
125
  よろしくお願いします。
126
+
127
+
128
+
129
+ ### 【追記】
130
+
131
+ 参考URLでは、カスタムフィールドで行っていたので、
132
+
133
+
134
+
135
+ ・おすすめ(sort_pickup)
136
+
137
+ ・徒歩(sort_walktime)
138
+
139
+ ・値段(sort_maxprice)
140
+
141
+
142
+
143
+ このようにフィールドを作りfunctions.phpに
144
+
145
+ ```
146
+
147
+ // 並び替え条件パラメータを追加
148
+
149
+ function add_sort_query_vars( $public_query_vars ) {
150
+
151
+ $public_query_vars[] = 'sort';
152
+
153
+ return $public_query_vars;
154
+
155
+ }
156
+
157
+ add_filter( 'query_vars', 'add_sort_query_vars' );
158
+
159
+ // 並び替え処理を設定
160
+
161
+ function change_posts_per_page( $query ){
162
+
163
+ if($query->is_search()){
164
+
165
+ if( !empty($_GET['sort']) ){
166
+
167
+ if( $_GET['sort'] == 'RENT_DESC' ){
168
+
169
+ $query->set( 'orderby', array( 'sort_maxprice' => 'DESC') );
170
+
171
+ }elseif( $_GET['sort'] == 'RENT_ASC' ){
172
+
173
+ $query->set( 'orderby', array( 'sort_walktime' => 'ASC' ) );
174
+
175
+ }else{
176
+
177
+ $query->set( 'orderby', array( 'sort_pickup' => 'DESC' ) );
178
+
179
+ }
180
+
181
+ }
182
+
183
+ }
184
+
185
+ }
186
+
187
+ add_action( 'pre_get_posts', 'change_posts_per_page' );
188
+
189
+ ```
190
+
191
+ こちらで試してみましが上手く行かずでしたので、
192
+
193
+ ```
194
+
195
+ // 並び替え条件パラメータを追加
196
+
197
+ function add_sort_query_vars( $public_query_vars ) {
198
+
199
+ $public_query_vars[] = 'sort';
200
+
201
+ return $public_query_vars;
202
+
203
+ }
204
+
205
+ add_filter( 'query_vars', 'add_sort_query_vars' );
206
+
207
+ // 並び替え処理を設定
208
+
209
+ function change_posts_per_page( $query ){
210
+
211
+ if($query->is_search()){
212
+
213
+ if( !empty($_GET['sort']) ){
214
+
215
+ if( $_GET['sort'] == 'RENT_DESC' ){
216
+
217
+ $query->set( 'orderby', array( get_field('sort_maxprice') => 'DESC') );
218
+
219
+ }elseif( $_GET['sort'] == 'RENT_ASC' ){
220
+
221
+ $query->set( 'orderby', array( 'get_field('sort_walktime') => 'ASC' ) );
222
+
223
+ }else{
224
+
225
+ $query->set( 'orderby', array( get_field('sort_pickup') => 'DESC' ) );
226
+
227
+ }
228
+
229
+ }
230
+
231
+ }
232
+
233
+ }
234
+
235
+ add_action( 'pre_get_posts', 'change_posts_per_page' );
236
+
237
+ ```
238
+
239
+ このように、get_fieldでも検証してみましたが、
240
+
241
+ ソートの切り替えが反映されませんでした。
242
+
243
+
244
+
245
+ 最終的にはタクソノミーでも、カスタムフィールドでも
246
+
247
+ ソートの切り替えができれば問題はないと思っておりますので、
248
+
249
+ お知恵貸して頂ければ幸いです。
250
+
251
+
252
+
253
+ よろしくお願いします。

2

誤字修正

2021/02/22 18:53

投稿

NNC
NNC

スコア22

test CHANGED
File without changes
test CHANGED
@@ -1,4 +1,4 @@
1
- 現在、Wordpressにて検索画面を作成しています。
1
+ 現在、Wordpressにて検索画面を作成しています。
2
2
 
3
3
  その際、検索結果にタクソノミーによるソート切り替え機能を実装したいと思い、
4
4
 

1

誤字修正

2021/02/22 12:54

投稿

NNC
NNC

スコア22

test CHANGED
File without changes
test CHANGED
@@ -20,7 +20,7 @@
20
20
 
21
21
  上記、3つのタクソノミーを作成し
22
22
 
23
- ※()内はスラッグです。
23
+ ※()内はタームです。
24
24
 
25
25
 
26
26