回答編集履歴
6
修正
answer
CHANGED
@@ -23,8 +23,6 @@
|
|
23
23
|
));
|
24
24
|
|
25
25
|
$result = new WP_Query(
|
26
|
-
|
27
|
-
$result = new WP_Query(
|
28
26
|
[
|
29
27
|
'post_type' => 'property',
|
30
28
|
'paged' => $paged,
|
5
修正
answer
CHANGED
@@ -22,6 +22,14 @@
|
|
22
22
|
)
|
23
23
|
));
|
24
24
|
|
25
|
-
$result = new WP_Query(
|
25
|
+
$result = new WP_Query(
|
26
|
+
|
27
|
+
$result = new WP_Query(
|
28
|
+
[
|
29
|
+
'post_type' => 'property',
|
30
|
+
'paged' => $paged,
|
31
|
+
'post_status' => 'publish'
|
32
|
+
]
|
33
|
+
);
|
26
34
|
$result->posts = array_unique( array_merge( $q1->posts, $q2->posts ), SORT_REGULAR );
|
27
35
|
```
|
4
修正
answer
CHANGED
@@ -5,23 +5,23 @@
|
|
5
5
|
`$s = $_GET['s'];`
|
6
6
|
|
7
7
|
---
|
8
|
+
## 修正
|
9
|
+
sの検索とmeta_queryをarray_mergeしてuniqueしてみてはどうでしょう?
|
8
10
|
|
9
|
-
これによって`is_search()`がtrueになりますので
|
10
|
-
pre_get_postsに検索条件を入れた方がコードの見通しも良くなると思います。
|
11
|
-
|
12
11
|
```php
|
13
|
-
function myPreGetPosts( $query ) {
|
14
|
-
if ( is_admin() || ! $query->is_main_query() ){
|
15
|
-
return;
|
16
|
-
}
|
17
|
-
|
12
|
+
$q1 = new WP_Query( array(
|
13
|
+
'post_type' => 'property',
|
18
|
-
|
14
|
+
's' => $s
|
19
|
-
}
|
20
|
-
}
|
21
|
-
add_action('pre_get_posts','myPreGetPosts');
|
22
|
-
|
15
|
+
));
|
23
16
|
|
17
|
+
$q2 = new WP_Query( array(
|
18
|
+
'post_type' => 'property',
|
19
|
+
'meta_query' => array(
|
20
|
+
'relation' => 'AND',
|
21
|
+
$metaquerysp,
|
22
|
+
)
|
24
|
-
|
23
|
+
));
|
25
24
|
|
26
|
-
|
25
|
+
$result = new WP_Query();
|
27
|
-
$
|
26
|
+
$result->posts = array_unique( array_merge( $q1->posts, $q2->posts ), SORT_REGULAR );
|
27
|
+
```
|
3
修正
answer
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
WordPressの検索機能を利用したいのでしたら
|
1
|
+
search.phpテンプレートでWordPressの検索機能を利用したいのでしたら
|
2
2
|
サイトルート(https://example.comなど)に対してGET通信でsパラメータを送信する必要があります。
|
3
3
|
|
4
4
|
なので受け取る時はこうですね。
|
@@ -24,4 +24,4 @@
|
|
24
24
|
---
|
25
25
|
|
26
26
|
「いや、どうしてもPOSTでやりたい」というのであれば、送信先で
|
27
|
-
|
27
|
+
$_POSTからqueryを組み立て、search.phpのようなviewを作れば良いです。
|
2
修正
answer
CHANGED
@@ -1,10 +1,13 @@
|
|
1
1
|
WordPressの検索機能を利用したいのでしたら
|
2
2
|
サイトルート(https://example.comなど)に対してGET通信でsパラメータを送信する必要があります。
|
3
3
|
|
4
|
+
なので受け取る時はこうですね。
|
4
5
|
`$s = $_GET['s'];`
|
5
6
|
|
7
|
+
---
|
8
|
+
|
6
9
|
これによって`is_search()`がtrueになりますので
|
7
|
-
pre_get_postsに検索条件を入れた方が見通しも良くなると思います。
|
10
|
+
pre_get_postsに検索条件を入れた方がコードの見通しも良くなると思います。
|
8
11
|
|
9
12
|
```php
|
10
13
|
function myPreGetPosts( $query ) {
|
@@ -16,4 +19,9 @@
|
|
16
19
|
}
|
17
20
|
}
|
18
21
|
add_action('pre_get_posts','myPreGetPosts');
|
19
|
-
```
|
22
|
+
```
|
23
|
+
|
24
|
+
---
|
25
|
+
|
26
|
+
「いや、どうしてもPOSTでやりたい」というのであれば、送信先で
|
27
|
+
POSTから自分でqueryを組み立てれば良いです。
|
1
修正
answer
CHANGED
@@ -1,4 +1,19 @@
|
|
1
1
|
WordPressの検索機能を利用したいのでしたら
|
2
|
-
|
2
|
+
サイトルート(https://example.comなど)に対してGET通信でsパラメータを送信する必要があります。
|
3
3
|
|
4
|
-
`$s = $_GET['s']`
|
4
|
+
`$s = $_GET['s'];`
|
5
|
+
|
6
|
+
これによって`is_search()`がtrueになりますので
|
7
|
+
pre_get_postsに検索条件を入れた方が見通しも良くなると思います。
|
8
|
+
|
9
|
+
```php
|
10
|
+
function myPreGetPosts( $query ) {
|
11
|
+
if ( is_admin() || ! $query->is_main_query() ){
|
12
|
+
return;
|
13
|
+
}
|
14
|
+
if ( $query->is_search() ) {
|
15
|
+
//検索条件
|
16
|
+
}
|
17
|
+
}
|
18
|
+
add_action('pre_get_posts','myPreGetPosts');
|
19
|
+
```
|