teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

微修正と境界線を明確にしました。

2018/05/07 07:09

投稿

Kohei1122
Kohei1122

スコア6

title CHANGED
File without changes
body CHANGED
@@ -11,6 +11,8 @@
11
11
 
12
12
  ![イメージ説明](4f203b7e5ca2f3c1989cc9eaac4e2f4e.png)
13
13
 
14
+ 検索フォーム
15
+
14
16
  '<form method="get" id="searchform" action="<?php echo home_url('/'); ?>">
15
17
  <input type="text" placeholder="<?php echo get_theme_text_search_placeholder();//検索ボックスのプレースホルダテキストを取得 ?>" name="s" id="s">
16
18
  <input type="submit" id="searchsubmit" value="">
@@ -27,8 +29,8 @@
27
29
 
28
30
  <select name="type" style="margin-top:20px;">
29
31
  <option value="" selected>クーポン使用(カスタムフィールドのセレクトボックス)</option>
30
- <option value="アパート">可能</option>
32
+ <option value="可能">可能</option>
31
- <option value="マンション">不可</option>
33
+ <option value="不可">不可</option>
32
34
  </select>
33
35
 
34
36
  <div style="margin-top:20px">値段(カスタムフィールドのテキストフィールド)</div>
@@ -70,6 +72,10 @@
70
72
  </form>'
71
73
 
72
74
 
75
+
76
+ ーーーーーーーーー
77
+ ここから検索結果
78
+
73
79
  '<?php //検索結果?>
74
80
  <?php get_header(); ?>
75
81
 

1

検索フォームと検索結果のコードの記載。

2018/05/07 07:09

投稿

Kohei1122
Kohei1122

スコア6

title CHANGED
File without changes
body CHANGED
@@ -9,4 +9,197 @@
9
9
 
10
10
  スクリーンショットを添付しますのでご確認していただければと思います。
11
11
 
12
- ![イメージ説明](4f203b7e5ca2f3c1989cc9eaac4e2f4e.png)
12
+ ![イメージ説明](4f203b7e5ca2f3c1989cc9eaac4e2f4e.png)
13
+
14
+ '<form method="get" id="searchform" action="<?php echo home_url('/'); ?>">
15
+ <input type="text" placeholder="<?php echo get_theme_text_search_placeholder();//検索ボックスのプレースホルダテキストを取得 ?>" name="s" id="s">
16
+ <input type="submit" id="searchsubmit" value="">
17
+
18
+ <select name="catnum" style="margin-top:20px;">
19
+ <option value="" selected>カテゴリ</option>
20
+ <?php
21
+ $categories = get_categories('parent=0');
22
+ foreach($categories as $category) :
23
+ ?>
24
+ <option value="<?php echo $category->term_id; ?>"><?php echo $category->cat_name; ?></option>
25
+ <?php endforeach; ?>
26
+ </select>
27
+
28
+ <select name="type" style="margin-top:20px;">
29
+ <option value="" selected>クーポン使用(カスタムフィールドのセレクトボックス)</option>
30
+ <option value="アパート">可能</option>
31
+ <option value="マンション">不可</option>
32
+ </select>
33
+
34
+ <div style="margin-top:20px">値段(カスタムフィールドのテキストフィールド)</div>
35
+ <select name="low" style="margin-top:5x;">
36
+ <option value="0" selected>下限なし</option>
37
+ <option value="500">500円以上</option>
38
+ <option value="1000">1,000円以上</option>
39
+ <option value="1500">1,500円以上</option>
40
+ </select> ~
41
+ <select name="high" style="margin-top:5px;">
42
+ <option value="500">500円以下</option>
43
+ <option value="1000">1,000円以下</option>
44
+ <option value="1500">1,500円以下</option>
45
+ <option value="9999999" selected>上限なし</option>
46
+
47
+ </select>
48
+
49
+ <div style="margin-top:20px">使用した果物(タグ)</div>
50
+ <?php
51
+ $taxonomy_name = 'post_tag';
52
+ $taxonomys = get_terms($taxonomy_name);
53
+ if(!is_wp_error($taxonomys) && count($taxonomys)):
54
+ foreach($taxonomys as $taxonomy):
55
+ $tax_posts = get_posts(array('post_type' => get_post_type(), 'taxonomy' => $taxonomy_name, 'term' => $taxonomy->slug ) );
56
+ if($tax_posts):
57
+ ?>
58
+ <label><input type="checkbox" name="post_tag[]" value="<?php echo $taxonomy->slug; ?>"><?php echo $taxonomy->name; ?></label><br>
59
+ <?php
60
+ endif;
61
+ endforeach;
62
+ endif;
63
+ ?>
64
+
65
+ <div>送料</div>
66
+ <label><input type="checkbox" name="kodawari[]" value="無料">無料</label><br>
67
+ <label><input type="checkbox" name="kodawari[]" value="有料">有料</label><br>
68
+
69
+ <input type="submit" class="submit" name="submit" id="searchsubmit" value="検索" />
70
+ </form>'
71
+
72
+
73
+ '<?php //検索結果?>
74
+ <?php get_header(); ?>
75
+
76
+ <?php
77
+ $s = $_GET['s'];
78
+ $catnum = $_GET['catnum'];
79
+ $placenum = $_GET['placenum'];
80
+ $type = $_GET['type'];
81
+ $low = $_GET['low'];
82
+ $high = $_GET['high'];
83
+ $post_tag = $_GET['post_tag'];
84
+ $kodawari = $_GET['kodawari'];
85
+
86
+ if($catnum){
87
+ $taxquerysp[] = array(
88
+ 'taxonomy'=>'category',
89
+ 'terms'=> $catnum,
90
+ 'include_children'=>false,
91
+ 'field'=>'term_id',
92
+ 'operator'=>'AND'
93
+ );
94
+ }
95
+
96
+ if($post_tag){
97
+ $taxquerysp[] = array(
98
+ 'taxonomy'=>'post_tag',
99
+ 'terms'=> $post_tag,
100
+ 'include_children'=>false,
101
+ 'field'=>'slug',
102
+ 'operator'=>'AND'
103
+ );
104
+ }
105
+
106
+ if($placenum){
107
+ $taxquerysp[] = array(
108
+ 'taxonomy'=>'place',
109
+ 'terms'=> $placenum,
110
+ 'include_children'=>false,
111
+ 'field'=>'slug',
112
+ 'operator'=>'AND'
113
+ );
114
+ }
115
+ $taxquerysp['relation'] = 'AND';
116
+
117
+ if($kodawari){
118
+ foreach($kodawari as $val){
119
+ $metaquerysp[] = array(
120
+ 'key'=>'kodawari',
121
+ 'value'=> $val,
122
+ );
123
+ }
124
+ }
125
+ if($type){
126
+ $metaquerysp[] = array(
127
+ 'key'=>'type',
128
+ 'value'=> $type,
129
+ 'compare'=>'=',
130
+ );
131
+ }
132
+ $metaquerysp[] = array(
133
+ 'key'=>'price',
134
+ 'value'=>array( $low, $high ),
135
+ 'compare'=>'BETWEEN',
136
+ 'type'=>'NUMERIC',
137
+ );
138
+ $metaquerysp['relation'] = 'AND';
139
+
140
+ ?>
141
+
142
+ <?php if($s){ ?>検索キーワード:<?php echo $s; ?><br><?php } ?>
143
+ <?php if($catnum){ ?>カテゴリ:<?php echo get_cat_name($catnum); ?><br><?php } ?>
144
+ <?php if($placenum){ ?>間取りタイプ:<?php echo get_term_by('slug',$placenum,"place")->name; ?><br><?php } ?>
145
+ <?php if($type){ ?>ルームタイプ:<?php echo $type; ?><br><?php } ?>
146
+ <?php if($low == 0 && $high == 9999999){}else{ ?>家賃:<?php if($low == 0){ ?>下限なし<?php }else{ echo number_format($low).'円'; } ?> ~ <?php if($high == 9999999){ ?>上限なし<?php }else{ echo number_format($high).'円';} ?><br>
147
+ <br><?php } ?>
148
+ <?php
149
+ if (is_array($cutnum)) { ?>カテゴリ:<?php
150
+ foreach($cutnum as $val){
151
+ if ($val === end($cutnum)) {
152
+ echo get_cat_name($catnum);
153
+ }else{
154
+ echo get_cat_name($catnum).", ";
155
+ }
156
+ }
157
+ }
158
+ ?>
159
+ <?php
160
+ if (is_array($post_tag)) { ?>こだわり(タグ):<?php
161
+ foreach($post_tag as $val){
162
+ if ($val === end($post_tag)) {
163
+ echo get_term_by('slug',$val,"post_tag")->name;
164
+ }else{
165
+ echo get_term_by('slug',$val,"post_tag")->name.", ";
166
+ }
167
+ }
168
+ ?><br><br><?php } ?>
169
+ <?php if (is_array($kodawari)) { ?>こだわり(カスタムフィールドのチェックボックス):<?php
170
+ if (is_array($kodawari)) {
171
+ foreach($kodawari as $val){
172
+ if ($val === end($kodawari)) {
173
+ echo $val;
174
+ }else{
175
+ echo $val.", ";
176
+ }
177
+ }
178
+ }
179
+ }
180
+ ?>
181
+
182
+ <?php
183
+
184
+ query_posts( array(
185
+ 'tax_query' => $taxquerysp,
186
+ 'meta_query' => $metaquerysp,
187
+ 's' => $s,
188
+ )
189
+ );
190
+
191
+ ?>
192
+
193
+ <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
194
+ <div><?php the_title(); ?></div>
195
+ <div><?php the_content(); ?></div>
196
+ <?php endwhile; else : ?>
197
+
198
+ 該当なし
199
+
200
+ <?php endif;wp_reset_query(); ?>
201
+
202
+
203
+ <?php get_template_part('list') ?>
204
+
205
+ <?php get_footer(); ?>'