質問編集履歴
11
追記
title
CHANGED
|
File without changes
|
body
CHANGED
|
@@ -247,4 +247,12 @@
|
|
|
247
247
|
<?php endif; ?>
|
|
248
248
|
<?php get_search_form(); ?>
|
|
249
249
|
<?php endif; ?>
|
|
250
|
-
```
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
### ※追記5
|
|
253
|
+
WordPressフォーラムにて、プラグインのご紹介をしていただきました。
|
|
254
|
+
「Search & Filter」`https://ja.wordpress.org/plugins/search-filter/`
|
|
255
|
+
ドキュメント:`http://docs.designsandcode.com/search-filter/`
|
|
256
|
+
かなり私がやりたいことに近いです。
|
|
257
|
+
ですが、少しプラグイン無しにこだわっているところがあるので
|
|
258
|
+
解決しなければ、こちらのプラグインを使おうかと思います。
|
10
追記
title
CHANGED
|
File without changes
|
body
CHANGED
|
@@ -118,7 +118,7 @@
|
|
|
118
118
|
|
|
119
119
|
## ※追記4
|
|
120
120
|
WordPressフォーラム先で、下記の参考サイトを紹介して頂き、
|
|
121
|
-
https://illustswitch.com/wordpress-search-filter/
|
|
121
|
+
`https://illustswitch.com/wordpress-search-filter/`
|
|
122
122
|
|
|
123
123
|
ご紹介いただいた、サイトを参考に作成してみたのですが
|
|
124
124
|
|
|
@@ -131,19 +131,19 @@
|
|
|
131
131
|
が、きちんと選択したカテゴリーが表示されています。
|
|
132
132
|
### search.php
|
|
133
133
|
```PHP
|
|
134
|
-
<h1>検索結果</h1>
|
|
134
|
+
39 <h1>検索結果</h1>
|
|
135
|
-
<?php
|
|
135
|
+
40 <?php
|
|
136
|
-
if(is_array($get_cats)) {
|
|
136
|
+
41 if(is_array($get_cats)) {
|
|
137
|
-
|
|
137
|
+
42 echo '<p>カテゴリー:';
|
|
138
|
-
foreach ($get_cats as $val) {
|
|
138
|
+
43 foreach ($get_cats as $val) {
|
|
139
|
-
$p_term = get_term_by('slug', $val, 'products_cat_brand');
|
|
139
|
+
44 $p_term = get_term_by('slug', $val, 'products_cat_brand');
|
|
140
|
-
echo $p_term->name;
|
|
140
|
+
45 echo $p_term->name;
|
|
141
|
-
if ($val !== end($get_cats)) {
|
|
141
|
+
46 if ($val !== end($get_cats)) {
|
|
142
|
-
echo ', ';
|
|
142
|
+
47 echo ', ';
|
|
143
|
+
48 }
|
|
143
|
-
|
|
144
|
+
49 }
|
|
144
|
-
}
|
|
145
|
-
echo '</p>';
|
|
145
|
+
50 echo '</p>';
|
|
146
|
-
} ?>
|
|
146
|
+
51 } ?>
|
|
147
147
|
```
|
|
148
148
|
|
|
149
149
|
ご紹介していただいたサイトを元に、作成してみたコードを下に記載しておきますので、
|
9
hennsyuu
title
CHANGED
|
File without changes
|
body
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
テーマは「Lightning」を使用しております。
|
|
2
2
|
|
|
3
|
-
https://kotori-blog.com/wordpress/refinement_search/#refinement6_1
|
|
3
|
+
`https://kotori-blog.com/wordpress/refinement_search/#refinement6_1`
|
|
4
4
|
こちらの記事を参考に、ターム絞り込み検索を実装しました。
|
|
5
5
|
|
|
6
|
-
検索結果ページ(search.php)を作成し、こちらの記事を参考に
|
|
6
|
+
検索結果ページ`(search.php)`を作成し、こちらの記事を参考に
|
|
7
|
-
search.phpを作成したのですが、チェックした記事が表示されず、
|
|
7
|
+
`search.php`を作成したのですが、チェックした記事が表示されず、
|
|
8
8
|
全く関係ないものが何件か表示されます。
|
|
9
9
|
|
|
10
10
|
チェックボックスをチェックせずに、フリーワードだけを入力した場合は、
|
|
@@ -16,9 +16,8 @@
|
|
|
16
16
|
この場合どのようなコードを書くのが正しいのでしょうか。
|
|
17
17
|
|
|
18
18
|
下記のコードは`searchform.php`と`search.php`になります。
|
|
19
|
+
### searchform.php
|
|
19
20
|
```PHP
|
|
20
|
-
searchform.php
|
|
21
|
-
|
|
22
21
|
<form method="get" id="search-form" action="<?php bloginfo('url'); ?>">
|
|
23
22
|
<label for="s" class="assistive-text">検索</label>
|
|
24
23
|
<input type="text" name="s" id="s" placeholder="検索" />
|
|
@@ -38,10 +37,8 @@
|
|
|
38
37
|
<input type="submit" value="検索" />
|
|
39
38
|
</form>
|
|
40
39
|
```
|
|
41
|
-
|
|
40
|
+
### search.php
|
|
42
41
|
```PHP
|
|
43
|
-
search.php
|
|
44
|
-
|
|
45
42
|
<?php
|
|
46
43
|
$s = $_GET['s'];
|
|
47
44
|
$post_tag = $_GET['post_tag'];
|
|
@@ -97,18 +94,18 @@
|
|
|
97
94
|
### ※追記
|
|
98
95
|
`<?php $post_tags = get_query_var( 'post_tag' );
|
|
99
96
|
var_dump( $post_tags ); ?>`
|
|
100
|
-
こちらのコードを、search.phpに入力し値を確認してみたところ、
|
|
97
|
+
こちらのコードを、`search.php`に入力し値を確認してみたところ、
|
|
101
98
|
`string(0) ""`と書いておりました。
|
|
102
99
|
|
|
103
100
|
### ※追記2
|
|
104
101
|
WordPressフォーラムにて、「もう少し具体的にやりたいことを教えてほしい。」と仰っていただいたため追記いたします
|
|
105
|
-
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/
|
|
102
|
+
`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/`
|
|
106
103
|
|
|
107
104
|
商品を管理する、カスタム投稿タイプを作成しました。
|
|
108
105
|
商品数が膨大なため、チェックボックスを使った複数のタクソノミー内の
|
|
109
106
|
ターム絞り込み検索を実装したいです。(test1タクソノミー内のtest2ターム, test3タクソノミー内のtest4ターム、という風に複数のタクソノミー内のタームにチェックをしたい。)
|
|
110
107
|
|
|
111
|
-
チェックをしたタームが付いている全ての記事を検索結果(search.php)で表示したいです。(‘operator’=>’AND’で言うところの、ORと思っていただければと思います。)
|
|
108
|
+
チェックをしたタームが付いている全ての記事を検索結果(`search.php`)で表示したいです。(`‘operator’=>’AND’`で言うところの、`OR`と思っていただければと思います。)
|
|
112
109
|
|
|
113
110
|
本文にも記載してます通り、参考URLを見ながら作成してみたのですが、チェックしたタームの記事ではなく、固定ページのページ一覧が表示されてしまいます。
|
|
114
111
|
|
|
@@ -125,17 +122,15 @@
|
|
|
125
122
|
|
|
126
123
|
ご紹介いただいた、サイトを参考に作成してみたのですが
|
|
127
124
|
|
|
128
|
-
search.phpを作成せず、searchform.phpだけを作成した場合、不具合なくカテゴリー検索が出来たのですが、
|
|
125
|
+
`search.php`を作成せず、`searchform.php`だけを作成した場合、不具合なくカテゴリー検索が出来たのですが、
|
|
129
|
-
search.phpを作成すると、「検索結果が見つかりませんでした。」となり、やはり検索結果がありません。
|
|
126
|
+
`search.php`を作成すると、「検索結果が見つかりませんでした。」となり、やはり検索結果がありません。
|
|
130
127
|
|
|
131
128
|
以前のコードでは、固定ページは表示されていたのですが、現状では固定ページさえも表示されなくなってしまいました。
|
|
132
129
|
|
|
133
130
|
検索結果ページでは、以下のコードの部分(ページでは「カテゴリー:(選択したカテゴリー)」)
|
|
134
131
|
が、きちんと選択したカテゴリーが表示されています。
|
|
135
|
-
|
|
132
|
+
### search.php
|
|
136
133
|
```PHP
|
|
137
|
-
search.php
|
|
138
|
-
|
|
139
134
|
<h1>検索結果</h1>
|
|
140
135
|
<?php
|
|
141
136
|
if(is_array($get_cats)) {
|
|
@@ -153,9 +148,8 @@
|
|
|
153
148
|
|
|
154
149
|
ご紹介していただいたサイトを元に、作成してみたコードを下に記載しておきますので、
|
|
155
150
|
ご教示のほど、よろしくお願いいたします。
|
|
151
|
+
### searchform.php
|
|
156
152
|
```PHP
|
|
157
|
-
search.php
|
|
158
|
-
|
|
159
153
|
<form role="search" method="get" id="searchform" action="<?php echo esc_url(home_url('/')); ?>products/">
|
|
160
154
|
|
|
161
155
|
<h2>カテゴリー</h2>
|
|
@@ -176,9 +170,8 @@
|
|
|
176
170
|
<input type="submit" value="検索" />
|
|
177
171
|
</form>
|
|
178
172
|
```
|
|
173
|
+
### search.php
|
|
179
174
|
```PHP
|
|
180
|
-
search.php
|
|
181
|
-
|
|
182
175
|
<?php
|
|
183
176
|
$s = $_GET['s'];
|
|
184
177
|
$get_cats = $_GET['get_cats'];
|
8
修正
title
CHANGED
|
File without changes
|
body
CHANGED
|
@@ -102,7 +102,7 @@
|
|
|
102
102
|
|
|
103
103
|
### ※追記2
|
|
104
104
|
WordPressフォーラムにて、「もう少し具体的にやりたいことを教えてほしい。」と仰っていただいたため追記いたします
|
|
105
|
-
https://ja.wordpress.org/support/topic/%
|
|
105
|
+
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/
|
|
106
106
|
|
|
107
107
|
商品を管理する、カスタム投稿タイプを作成しました。
|
|
108
108
|
商品数が膨大なため、チェックボックスを使った複数のタクソノミー内の
|
7
追記
title
CHANGED
|
File without changes
|
body
CHANGED
|
@@ -102,6 +102,7 @@
|
|
|
102
102
|
|
|
103
103
|
### ※追記2
|
|
104
104
|
WordPressフォーラムにて、「もう少し具体的にやりたいことを教えてほしい。」と仰っていただいたため追記いたします
|
|
105
|
+
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
|
|
105
106
|
|
|
106
107
|
商品を管理する、カスタム投稿タイプを作成しました。
|
|
107
108
|
商品数が膨大なため、チェックボックスを使った複数のタクソノミー内の
|
6
追記
title
CHANGED
|
File without changes
|
body
CHANGED
|
@@ -100,7 +100,9 @@
|
|
|
100
100
|
こちらのコードを、search.phpに入力し値を確認してみたところ、
|
|
101
101
|
`string(0) ""`と書いておりました。
|
|
102
102
|
|
|
103
|
-
### ※追記2
|
|
103
|
+
### ※追記2
|
|
104
|
+
WordPressフォーラムにて、「もう少し具体的にやりたいことを教えてほしい。」と仰っていただいたため追記いたします
|
|
105
|
+
|
|
104
106
|
商品を管理する、カスタム投稿タイプを作成しました。
|
|
105
107
|
商品数が膨大なため、チェックボックスを使った複数のタクソノミー内の
|
|
106
108
|
ターム絞り込み検索を実装したいです。(test1タクソノミー内のtest2ターム, test3タクソノミー内のtest4ターム、という風に複数のタクソノミー内のタームにチェックをしたい。)
|
5
編集
title
CHANGED
|
File without changes
|
body
CHANGED
|
@@ -111,7 +111,7 @@
|
|
|
111
111
|
|
|
112
112
|
また、検索結果ページの記事一覧のスタイルを、記事のタイトル +サムネイル+ 本文の抜粋 を表示したいのですが、今現時点では記事の内容全てが検索結果に出るようになってしまっています。
|
|
113
113
|
|
|
114
|
-
###
|
|
114
|
+
### 追記3
|
|
115
115
|
※追記です。
|
|
116
116
|
「また、検索結果ページの記事一覧のスタイルを、記事のタイトル +サムネイル+ 本文の抜粋 を表示したいのですが」と言ったんですが、
|
|
117
117
|
テーマのデフォルト一覧表示形式で問題ないです。(Lightningテーマを使用しております。)
|
4
追記
title
CHANGED
|
File without changes
|
body
CHANGED
|
@@ -98,4 +98,157 @@
|
|
|
98
98
|
`<?php $post_tags = get_query_var( 'post_tag' );
|
|
99
99
|
var_dump( $post_tags ); ?>`
|
|
100
100
|
こちらのコードを、search.phpに入力し値を確認してみたところ、
|
|
101
|
-
`string(0) ""`と書いておりました。
|
|
101
|
+
`string(0) ""`と書いておりました。
|
|
102
|
+
|
|
103
|
+
### ※追記2 動機
|
|
104
|
+
商品を管理する、カスタム投稿タイプを作成しました。
|
|
105
|
+
商品数が膨大なため、チェックボックスを使った複数のタクソノミー内の
|
|
106
|
+
ターム絞り込み検索を実装したいです。(test1タクソノミー内のtest2ターム, test3タクソノミー内のtest4ターム、という風に複数のタクソノミー内のタームにチェックをしたい。)
|
|
107
|
+
|
|
108
|
+
チェックをしたタームが付いている全ての記事を検索結果(search.php)で表示したいです。(‘operator’=>’AND’で言うところの、ORと思っていただければと思います。)
|
|
109
|
+
|
|
110
|
+
本文にも記載してます通り、参考URLを見ながら作成してみたのですが、チェックしたタームの記事ではなく、固定ページのページ一覧が表示されてしまいます。
|
|
111
|
+
|
|
112
|
+
また、検索結果ページの記事一覧のスタイルを、記事のタイトル +サムネイル+ 本文の抜粋 を表示したいのですが、今現時点では記事の内容全てが検索結果に出るようになってしまっています。
|
|
113
|
+
|
|
114
|
+
### ※追記3
|
|
115
|
+
※追記です。
|
|
116
|
+
「また、検索結果ページの記事一覧のスタイルを、記事のタイトル +サムネイル+ 本文の抜粋 を表示したいのですが」と言ったんですが、
|
|
117
|
+
テーマのデフォルト一覧表示形式で問題ないです。(Lightningテーマを使用しております。)
|
|
118
|
+
|
|
119
|
+
## ※追記4
|
|
120
|
+
WordPressフォーラム先で、下記の参考サイトを紹介して頂き、
|
|
121
|
+
https://illustswitch.com/wordpress-search-filter/
|
|
122
|
+
|
|
123
|
+
ご紹介いただいた、サイトを参考に作成してみたのですが
|
|
124
|
+
|
|
125
|
+
search.phpを作成せず、searchform.phpだけを作成した場合、不具合なくカテゴリー検索が出来たのですが、
|
|
126
|
+
search.phpを作成すると、「検索結果が見つかりませんでした。」となり、やはり検索結果がありません。
|
|
127
|
+
|
|
128
|
+
以前のコードでは、固定ページは表示されていたのですが、現状では固定ページさえも表示されなくなってしまいました。
|
|
129
|
+
|
|
130
|
+
検索結果ページでは、以下のコードの部分(ページでは「カテゴリー:(選択したカテゴリー)」)
|
|
131
|
+
が、きちんと選択したカテゴリーが表示されています。
|
|
132
|
+
|
|
133
|
+
```PHP
|
|
134
|
+
search.php
|
|
135
|
+
|
|
136
|
+
<h1>検索結果</h1>
|
|
137
|
+
<?php
|
|
138
|
+
if(is_array($get_cats)) {
|
|
139
|
+
echo '<p>カテゴリー:';
|
|
140
|
+
foreach ($get_cats as $val) {
|
|
141
|
+
$p_term = get_term_by('slug', $val, 'products_cat_brand');
|
|
142
|
+
echo $p_term->name;
|
|
143
|
+
if ($val !== end($get_cats)) {
|
|
144
|
+
echo ', ';
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
echo '</p>';
|
|
148
|
+
} ?>
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
ご紹介していただいたサイトを元に、作成してみたコードを下に記載しておきますので、
|
|
152
|
+
ご教示のほど、よろしくお願いいたします。
|
|
153
|
+
```PHP
|
|
154
|
+
search.php
|
|
155
|
+
|
|
156
|
+
<form role="search" method="get" id="searchform" action="<?php echo esc_url(home_url('/')); ?>products/">
|
|
157
|
+
|
|
158
|
+
<h2>カテゴリー</h2>
|
|
159
|
+
<?php
|
|
160
|
+
$taxonomies_args = array(
|
|
161
|
+
'orderby' => 'name',
|
|
162
|
+
'order' => 'ASC',
|
|
163
|
+
);
|
|
164
|
+
$taxonomies = get_terms( 'products_cat_brand', $taxonomies_args );
|
|
165
|
+
foreach($taxonomies as $taxonomies) :
|
|
166
|
+
?>
|
|
167
|
+
<label><input type="checkbox" name="get_cats[]" value="<?php echo $taxonomies->slug; ?>"><?php echo $taxonomies->name; ?></label>
|
|
168
|
+
<?php endforeach; ?>
|
|
169
|
+
|
|
170
|
+
<h2><?php _x( 'Search for:', 'label' ); ?>キーワード</h2>
|
|
171
|
+
<input type="text" value="<?php echo get_search_query(); ?>" name="s" id="s" placeholder="キーワードを入力してください" />
|
|
172
|
+
|
|
173
|
+
<input type="submit" value="検索" />
|
|
174
|
+
</form>
|
|
175
|
+
```
|
|
176
|
+
```PHP
|
|
177
|
+
search.php
|
|
178
|
+
|
|
179
|
+
<?php
|
|
180
|
+
$s = $_GET['s'];
|
|
181
|
+
$get_cats = $_GET['get_cats'];
|
|
182
|
+
$get_tags = $_GET['get_tags'];
|
|
183
|
+
|
|
184
|
+
if($get_cats) {
|
|
185
|
+
$tax_ary[] = array(
|
|
186
|
+
'taxonomy' => 'products_cat_brand',
|
|
187
|
+
'field' => 'slug',
|
|
188
|
+
'terms' => $get_cats,
|
|
189
|
+
'operator' => 'IN', //ANDかIN
|
|
190
|
+
);
|
|
191
|
+
}
|
|
192
|
+
if($get_tags) {
|
|
193
|
+
$tax_ary[] = array(
|
|
194
|
+
'taxonomy' => 'products_cat_brand',
|
|
195
|
+
'field' => 'slug',
|
|
196
|
+
'terms' => $get_tags,
|
|
197
|
+
'operator' => 'IN', //ANDかIN
|
|
198
|
+
);
|
|
199
|
+
}
|
|
200
|
+
?>
|
|
201
|
+
<?php if (!($s || $get_cats || $get_tags)): ?>
|
|
202
|
+
<p>検索条件を指定してください</p>
|
|
203
|
+
<?php get_search_form(); ?>
|
|
204
|
+
<?php else: ?>
|
|
205
|
+
|
|
206
|
+
<h1>検索結果</h1>
|
|
207
|
+
<?php
|
|
208
|
+
if(is_array($get_cats)) {
|
|
209
|
+
echo '<p>カテゴリー:';
|
|
210
|
+
foreach ($get_cats as $val) {
|
|
211
|
+
$p_term = get_term_by('slug', $val, 'products_cat_brand');
|
|
212
|
+
echo $p_term->name;
|
|
213
|
+
if ($val !== end($get_cats)) {
|
|
214
|
+
echo ', ';
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
echo '</p>';
|
|
218
|
+
} ?>
|
|
219
|
+
<?php
|
|
220
|
+
if(is_array($get_tags)) {
|
|
221
|
+
echo '<p>タグ:';
|
|
222
|
+
foreach ($get_tags as $val) {
|
|
223
|
+
$s_term = get_term_by('slug', $val, 'products_cat_brand');
|
|
224
|
+
echo $s_term->name;
|
|
225
|
+
if ($val !== end($get_tags)) {
|
|
226
|
+
echo ', ';
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
echo '</p>';
|
|
230
|
+
} ?>
|
|
231
|
+
<?php
|
|
232
|
+
if($s) { echo '<p>キーワード:'.$s.'</p>'; } ?>
|
|
233
|
+
|
|
234
|
+
<?php
|
|
235
|
+
$my_query = new WP_Query( array(
|
|
236
|
+
'paged' => get_query_var('paged'),
|
|
237
|
+
'post_type' => 'post',
|
|
238
|
+
'tax_query' => $tax_ary,
|
|
239
|
+
'relation' => 'AND', //ANDかOR
|
|
240
|
+
's' => $s,
|
|
241
|
+
)); ?>
|
|
242
|
+
<?php if($my_query->have_posts() ) : ?>
|
|
243
|
+
<ul>
|
|
244
|
+
<?php while( $my_query->have_posts()) : $my_query->the_post(); ?>
|
|
245
|
+
<li><a href="<?php the_permalink() ?>"><?php the_title(); ?></a>
|
|
246
|
+
</li>
|
|
247
|
+
<?php endwhile; ?>
|
|
248
|
+
</ul>
|
|
249
|
+
<?php else: ?>
|
|
250
|
+
<p>結果が見つかりませんでした。</p>
|
|
251
|
+
<?php endif; ?>
|
|
252
|
+
<?php get_search_form(); ?>
|
|
253
|
+
<?php endif; ?>
|
|
254
|
+
```
|
3
追記
title
CHANGED
|
File without changes
|
body
CHANGED
|
@@ -92,4 +92,10 @@
|
|
|
92
92
|
|
|
93
93
|
<?php endif;
|
|
94
94
|
wp_reset_query(); ?>
|
|
95
|
-
```
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
### ※追記
|
|
98
|
+
`<?php $post_tags = get_query_var( 'post_tag' );
|
|
99
|
+
var_dump( $post_tags ); ?>`
|
|
100
|
+
こちらのコードを、search.phpに入力し値を確認してみたところ、
|
|
101
|
+
`string(0) ""`と書いておりました。
|
2
編集
title
CHANGED
|
@@ -1,1 +1,1 @@
|
|
|
1
|
-
ターム絞り込み
|
|
1
|
+
ターム絞り込み チェックした記事が表示されない。
|
body
CHANGED
|
@@ -1,12 +1,47 @@
|
|
|
1
|
+
テーマは「Lightning」を使用しております。
|
|
2
|
+
|
|
1
3
|
https://kotori-blog.com/wordpress/refinement_search/#refinement6_1
|
|
4
|
+
こちらの記事を参考に、ターム絞り込み検索を実装しました。
|
|
2
5
|
|
|
3
|
-
テーマは「Lightning」を使用しております。
|
|
4
|
-
こちらの記事を参考に、ターム絞り込み検索を実装しました。
|
|
5
6
|
検索結果ページ(search.php)を作成し、こちらの記事を参考に
|
|
6
|
-
search.phpを作成したのですが、
|
|
7
|
+
search.phpを作成したのですが、チェックした記事が表示されず、
|
|
7
|
-
なか
|
|
8
|
+
全く関係ないものが何件か表示されます。
|
|
8
9
|
|
|
10
|
+
チェックボックスをチェックせずに、フリーワードだけを入力した場合は、
|
|
11
|
+
問題なく文句が含まれている記事が出てきます。
|
|
12
|
+
|
|
13
|
+
また、記事のサムネイル付き抜粋ではなく、記事の中身そのものが
|
|
14
|
+
一覧に表示されてしまいます。
|
|
15
|
+
|
|
16
|
+
この場合どのようなコードを書くのが正しいのでしょうか。
|
|
17
|
+
|
|
18
|
+
下記のコードは`searchform.php`と`search.php`になります。
|
|
9
19
|
```PHP
|
|
20
|
+
searchform.php
|
|
21
|
+
|
|
22
|
+
<form method="get" id="search-form" action="<?php bloginfo('url'); ?>">
|
|
23
|
+
<label for="s" class="assistive-text">検索</label>
|
|
24
|
+
<input type="text" name="s" id="s" placeholder="検索" />
|
|
25
|
+
<div>ブランドから選ぶ</div>
|
|
26
|
+
<?php
|
|
27
|
+
$taxonomy_name = 'products_cat_brand';
|
|
28
|
+
$taxonomys = get_terms($taxonomy_name, array('hide_empty' => false));
|
|
29
|
+
if(!is_wp_error($taxonomys) && count($taxonomys)):
|
|
30
|
+
foreach($taxonomys as $taxonomy):
|
|
31
|
+
$tax_posts = get_posts(array('post_type' => get_post_type('products'), 'taxonomy' => $taxonomy_name, 'term' => $taxonomy->slug ) );
|
|
32
|
+
?>
|
|
33
|
+
<label><input type="checkbox" name="post_tag[]" value="<?php echo $taxonomy->slug; ?>"><?php echo $taxonomy->name; ?></label><br>
|
|
34
|
+
<?php
|
|
35
|
+
endforeach;
|
|
36
|
+
endif;
|
|
37
|
+
?>
|
|
38
|
+
<input type="submit" value="検索" />
|
|
39
|
+
</form>
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
```PHP
|
|
43
|
+
search.php
|
|
44
|
+
|
|
10
45
|
<?php
|
|
11
46
|
$s = $_GET['s'];
|
|
12
47
|
$post_tag = $_GET['post_tag'];
|
|
@@ -14,7 +49,7 @@
|
|
|
14
49
|
//tax_query用
|
|
15
50
|
if($post_tag){
|
|
16
51
|
$taxquerysp[] = array(
|
|
17
|
-
'taxonomy'=>'
|
|
52
|
+
'taxonomy'=>'products_cat_brand',
|
|
18
53
|
'terms'=> $post_tag,
|
|
19
54
|
'include_children'=>false,
|
|
20
55
|
'field'=>'slug',
|
|
@@ -29,9 +64,9 @@
|
|
|
29
64
|
if (is_array($post_tag)) { ?>タグ(カスタムタクソノミー):<?php
|
|
30
65
|
foreach($post_tag as $val){
|
|
31
66
|
if ($val === end($post_tag)) {
|
|
32
|
-
echo get_term_by('slug',$val,"
|
|
67
|
+
echo get_term_by('slug',$val,"products_cat_brand")->name;
|
|
33
68
|
}else{
|
|
34
|
-
echo get_term_by('slug',$val,"
|
|
69
|
+
echo get_term_by('slug',$val,"products_cat_brand")->name.", ";
|
|
35
70
|
}
|
|
36
71
|
}
|
|
37
72
|
}
|
|
@@ -57,17 +92,4 @@
|
|
|
57
92
|
|
|
58
93
|
<?php endif;
|
|
59
94
|
wp_reset_query(); ?>
|
|
60
|
-
```
|
|
95
|
+
```
|
|
61
|
-
|
|
62
|
-
こちらのコードなんですが、しっかりと選択したタームがついている記事は
|
|
63
|
-
表示されるのですが、先述の通りヘッダーやフッター、CSS等が反応していません。
|
|
64
|
-
|
|
65
|
-
そこで、1行目に`<?php get_header(); ?>`やフッターの位置に`<?php get_footer(); ?>`
|
|
66
|
-
を記述したところ、無事表示されたのですが
|
|
67
|
-
|
|
68
|
-
検索結果が抜粋ではなく、記事の中身まるごと検索結果一覧に表示されてしまいます。
|
|
69
|
-
|
|
70
|
-
この場合どのように記述するのが、正解なんでしょうか。
|
|
71
|
-
|
|
72
|
-
上記のコードをどこかに記述するだけで、記事一覧以外のデザインは、
|
|
73
|
-
他のページと同じようにできないのでしょうか。
|
1
編集
title
CHANGED
|
@@ -1,1 +1,1 @@
|
|
|
1
|
-
ターム絞り込み検索
|
|
1
|
+
ターム絞り込み検索結果ページ(search.php)作成について
|
body
CHANGED
|
File without changes
|