お世話になります。
チェックボックス絞込みをしたいと思っておりますが、
該当なしとしか表示されず困っております。
キーワード検索は動作しています。
参考記事:https://teratail.com/questions/73215
php
1var_dump($metaquerysp); var_dump($s);
を試したことろ、
array(1) { [0]=> array(2) { ["key"]=> string(8) "kodawari" ["value"]=> string(21) "バス・トイレ別" } } string(0) ""
と表示されました
カスタムフィールドは、「Advanced Custom Fields」というプラグインを使用しています。
searchform.php
php
1<form method="get" id="searchform" action="<?php bloginfo('url'); ?>"> 2 <label for="s" class="assistive-text">検索</label> 3 <input type="text" name="s" id="s" placeholder="検索" /> 4 5 <div>カスタムフィールド</div> 6 <label><input type="checkbox" name="kodawari[]" value="駐車場あり">駐車場あり</label><br> 7 <label><input type="checkbox" name="kodawari[]" value="バス・トイレ別">バス・トイレ別</label><br> 8 <label><input type="checkbox" name="kodawari[]" value="ペット相談">ペット相談</label><br> 9 <label><input type="checkbox" name="kodawari[]" value="2階以上住戸">2階以上住戸</label> 10 <input type="submit" value="検索" /> 11</form>
search.php
php
1<?php 2$s = $_GET['s']; 3$kodawari = $_GET['kodawari']; 4 5//meta_query用 6if($kodawari){ 7 foreach($kodawari as $val){ 8 $metaquerysp[] = array( 9 'key'=>'kodawari', 10 'value'=> $val, 11 ); 12 } 13} 14if( 1<count($metaquerysp) ) { 15 $metaquerysp['relation'] = 'OR'; 16} 17?> 18 19<div>検索条件</div> 20<?php if($s){ ?>検索キーワード:<?php echo $s; ?><br><?php } ?> 21<?php if (is_array($kodawari)) { ?>カスタムフィールド:<?php 22if (is_array($kodawari)) { 23foreach($kodawari as $val){ 24if ($val === end($kodawari)) { 25echo $val; 26 }else{ 27echo $val.", "; 28} 29} 30} 31} 32 33 ?> 34 35<div>検索結果</div> 36 37<?php 38query_posts( array( 39 'meta_query' => $metaquerysp, 40 's' => $s, 41 ) 42); 43 44?> 45 46<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?> 47 48<div><?php the_title(); ?></div> 49<div><?php the_content(); ?></div> 50 51<?php endwhile; else : ?> 52 53<div>該当なし</div> 54 55<?php endif; 56wp_reset_query(); ?>
おかしな点がございましたら、アドバイスいただけませんでしょうか。
宜しくお願い致します。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/05/08 01:22
2017/05/08 13:03
2017/05/09 00:57