wordpressのカスタムフィールド(セレクトボックス)の検索について
受付中
回答 0
投稿
- 評価
- クリップ 0
- VIEW 1,531
wordpressのカスタムフィールドでセレクトボックスを使用し、その項目について複数検索を行いたく、以下のサイト(http://kotori-blog.com/wordpress/refinement_search/)を参考にしましたが、「カスタムフィールドでセレクトボックスを使用したものだけ」うまくいかず、ご質問させていただきます。
ほかの検索はうまく表示できております。
私のやったことは以下の通りです
カスタムフィールドにて「フィールドタイプ」セレクトボックスで
「選択し」が
駐車場あり : 駐車場あり
ペット相談 : ペット相談
二階以上住戸 : 二階以上住戸
室内洗濯機置き場 : 室内洗濯機置き場
エアコン付き : エアコン付き
オートロック : オートロック
フローリング : フローリング
間取り図付き : 間取り図付き
物件動画付き : 物件動画付き
定期借家を含まない : 定期借家を含まない
form.phpにて下記を記述(今回の質問に必要な部分のみ書いてますのでかなり省略しています)
if(isset($_GET['keyword'])){
$keyword = $_GET['keyword'];
}
<label class="keyword"><input type="checkbox" name="keyword[]" value="駐車場あり" id="key01" <?php if(isset($keyword)){ if(in_array("駐車場あり", $keyword)){echo "checked";}}?>>駐車場あり</label>
<label class="keyword"><input type="checkbox" name="keyword[]" value="ペット相談" id="key02" <?php if(isset($keyword)){ if (in_array("ペット相談", $keyword)){echo "checked";}}?>>ペット相談</label>
<label class="keyword"><input type="checkbox" name="keyword[]" value="二階以上住戸" id="key03" <?php if(isset($keyword)){ if (in_array("二階以上住戸", $keyword)){echo "checked";}}?>>二階以上住戸</label>
<label class="keyword"><input type="checkbox" name="keyword[]" value="室内洗濯機置き場" id="key04" <?php if(isset($keyword)){ if (in_array("室内洗濯機置き場", $keyword)){echo "checked";}}?>>室内洗濯機置き場</label>
<label class="keyword"><input type="checkbox" name="keyword[]" value="エアコン付き" id="key05" <?php if(isset($keyword)){ if (in_array("エアコン付き", $keyword)){echo "checked";}}?>>エアコン付き</label>
<label class="keyword"><input type="checkbox" name="keyword[]" value="オートロック" id="key06" <?php if(isset($keyword)){ if (in_array("オートロック", $keyword)){echo "checked";}}?>>オートロック</label>
<label class="keyword"><input type="checkbox" name="keyword[]" value="フローリング" id="key07" <?php if(isset($keyword)){ if (in_array("フローリング", $keyword)){echo "checked";}}?>>フローリング</label>
<label class="keyword"><input type="checkbox" name="keyword[]" value="間取り図付き" id="key08" <?php if(isset($keyword)){ if (in_array("間取り図付き", $keyword)){echo "checked";}}?>>間取り図付き</label>
<label class="keyword"><input type="checkbox" name="keyword[]" value="物件動画付き" id="key09" <?php if(isset($keyword)){ if (in_array("物件動画付き", $keyword)){echo "checked";}}?>>物件動画付き</label>
<label class="keyword"><input type="checkbox" name="keyword[]" value="定期借家を含まない" id="key10" <?php if(isset($keyword)){ if (in_array("定期借家を含まない", $keyword)){echo "checked";}}?>>定期借家を含まない</label>
search.phpにて
<?
$keyword = $_GET['keyword'];
if($keyword){
foreach($keyword as $val3){
$metaquerysp[] = array(
'key'=>'keyword',
'value'=> $val3,
);
}
}
?>
<?php if (is_array($keyword)) { ?>こだわり(カスタムフィールドのチェックボックス):<?php
foreach($keyword as $val3){
if ($val3 === end($keyword)) {
echo $val3;
}else{
echo $val3.", ";
}
}
}
?>
<div>検索結果</div>
<?php
query_posts( array(
'meta_query' => $metaquerysp,
's' => $s,
)
);
?>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<div><?php the_title(); ?></div>
<div><?php the_content(); ?></div>
<div><?php the_field('fudosan_price') ?></div>
<div><?php the_field('fudosan_mainimg') ?></div>
<div><?php the_field('fudosan_add') ?></div>
<?php endwhile; else : ?>
<div>該当なし</div>
<?php endif;
wp_reset_query(); ?>
<?php get_footer(); ?>
また、wpの方では
駐車場あり
ペット相談
二階以上住戸
室内洗濯機置き場
エアコン付き
に、チェックをつけています。
検索結果は「駐車場あり, ペット相談」にチェックをつけた場合、
検索条件
こだわり(カスタムフィールドのチェックボックス):駐車場あり, ペット相談
検索結果
該当なし
となってしまいます。
チェックボックス以外の検索では
検索結果に
表示したいものがでてくるのですが、これだけどうしても「該当なし」になってしまいます。
なぜうまくいかないのか、まったく検討がつきません。
よろしければ回答いただけると非常にありがたく思います。どうかよろしくお願い致します。
ほかの検索はうまく表示できております。
私のやったことは以下の通りです
カスタムフィールドにて「フィールドタイプ」セレクトボックスで
「選択し」が
駐車場あり : 駐車場あり
ペット相談 : ペット相談
二階以上住戸 : 二階以上住戸
室内洗濯機置き場 : 室内洗濯機置き場
エアコン付き : エアコン付き
オートロック : オートロック
フローリング : フローリング
間取り図付き : 間取り図付き
物件動画付き : 物件動画付き
定期借家を含まない : 定期借家を含まない
form.phpにて下記を記述(今回の質問に必要な部分のみ書いてますのでかなり省略しています)
if(isset($_GET['keyword'])){
$keyword = $_GET['keyword'];
}
<label class="keyword"><input type="checkbox" name="keyword[]" value="駐車場あり" id="key01" <?php if(isset($keyword)){ if(in_array("駐車場あり", $keyword)){echo "checked";}}?>>駐車場あり</label>
<label class="keyword"><input type="checkbox" name="keyword[]" value="ペット相談" id="key02" <?php if(isset($keyword)){ if (in_array("ペット相談", $keyword)){echo "checked";}}?>>ペット相談</label>
<label class="keyword"><input type="checkbox" name="keyword[]" value="二階以上住戸" id="key03" <?php if(isset($keyword)){ if (in_array("二階以上住戸", $keyword)){echo "checked";}}?>>二階以上住戸</label>
<label class="keyword"><input type="checkbox" name="keyword[]" value="室内洗濯機置き場" id="key04" <?php if(isset($keyword)){ if (in_array("室内洗濯機置き場", $keyword)){echo "checked";}}?>>室内洗濯機置き場</label>
<label class="keyword"><input type="checkbox" name="keyword[]" value="エアコン付き" id="key05" <?php if(isset($keyword)){ if (in_array("エアコン付き", $keyword)){echo "checked";}}?>>エアコン付き</label>
<label class="keyword"><input type="checkbox" name="keyword[]" value="オートロック" id="key06" <?php if(isset($keyword)){ if (in_array("オートロック", $keyword)){echo "checked";}}?>>オートロック</label>
<label class="keyword"><input type="checkbox" name="keyword[]" value="フローリング" id="key07" <?php if(isset($keyword)){ if (in_array("フローリング", $keyword)){echo "checked";}}?>>フローリング</label>
<label class="keyword"><input type="checkbox" name="keyword[]" value="間取り図付き" id="key08" <?php if(isset($keyword)){ if (in_array("間取り図付き", $keyword)){echo "checked";}}?>>間取り図付き</label>
<label class="keyword"><input type="checkbox" name="keyword[]" value="物件動画付き" id="key09" <?php if(isset($keyword)){ if (in_array("物件動画付き", $keyword)){echo "checked";}}?>>物件動画付き</label>
<label class="keyword"><input type="checkbox" name="keyword[]" value="定期借家を含まない" id="key10" <?php if(isset($keyword)){ if (in_array("定期借家を含まない", $keyword)){echo "checked";}}?>>定期借家を含まない</label>
search.phpにて
<?
$keyword = $_GET['keyword'];
if($keyword){
foreach($keyword as $val3){
$metaquerysp[] = array(
'key'=>'keyword',
'value'=> $val3,
);
}
}
?>
<?php if (is_array($keyword)) { ?>こだわり(カスタムフィールドのチェックボックス):<?php
foreach($keyword as $val3){
if ($val3 === end($keyword)) {
echo $val3;
}else{
echo $val3.", ";
}
}
}
?>
<div>検索結果</div>
<?php
query_posts( array(
'meta_query' => $metaquerysp,
's' => $s,
)
);
?>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<div><?php the_title(); ?></div>
<div><?php the_content(); ?></div>
<div><?php the_field('fudosan_price') ?></div>
<div><?php the_field('fudosan_mainimg') ?></div>
<div><?php the_field('fudosan_add') ?></div>
<?php endwhile; else : ?>
<div>該当なし</div>
<?php endif;
wp_reset_query(); ?>
<?php get_footer(); ?>
また、wpの方では
駐車場あり
ペット相談
二階以上住戸
室内洗濯機置き場
エアコン付き
に、チェックをつけています。
検索結果は「駐車場あり, ペット相談」にチェックをつけた場合、
検索条件
こだわり(カスタムフィールドのチェックボックス):駐車場あり, ペット相談
検索結果
該当なし
となってしまいます。
チェックボックス以外の検索では
検索結果に
表示したいものがでてくるのですが、これだけどうしても「該当なし」になってしまいます。
なぜうまくいかないのか、まったく検討がつきません。
よろしければ回答いただけると非常にありがたく思います。どうかよろしくお願い致します。
-
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
クリップを取り消します
-
良い質問の評価を上げる
以下のような質問は評価を上げましょう
- 質問内容が明確
- 自分も答えを知りたい
- 質問者以外のユーザにも役立つ
評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。
質問の評価を上げたことを取り消します
-
評価を下げられる数の上限に達しました
評価を下げることができません
- 1日5回まで評価を下げられます
- 1日に1ユーザに対して2回まで評価を下げられます
質問の評価を下げる
teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。
- プログラミングに関係のない質問
- やってほしいことだけを記載した丸投げの質問
- 問題・課題が含まれていない質問
- 意図的に内容が抹消された質問
- 過去に投稿した質問と同じ内容の質問
- 広告と受け取られるような投稿
評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。
質問の評価を下げたことを取り消します
この機能は開放されていません
評価を下げる条件を満たしてません
質問の評価を下げる機能の利用条件
この機能を利用するためには、以下の事項を行う必要があります。
- 質問回答など一定の行動
-
メールアドレスの認証
メールアドレスの認証
-
質問評価に関するヘルプページの閲覧
質問評価に関するヘルプページの閲覧
まだ回答がついていません
15分調べてもわからないことは、teratailで質問しよう!
- ただいまの回答率 88.11%
- 質問をまとめることで、思考を整理して素早く解決
- テンプレート機能で、簡単に質問をまとめられる