質問編集履歴

1 追記

mamiMatsuumi

mamiMatsuumi score 0

2019/06/17 11:29  投稿

カスタムフィールドのチェックボックスを絞りこみ検索の対象にしたいです
### 前提・実現したいこと
お世話になります。
チェックボックスの絞り込み検索を作りたいです。
下記のサイトを参考に作りましたが、
該当なしとしか表示されず困っております。
キーワード検索は動作しています。
カスタムフィールドの設定は「Custom Field Template」というプラグインを使用してます。
参考サイト
[https://kotori-blog.com/wordpress/refinement_search/](https://kotori-blog.com/wordpress/refinement_search/)
---
search.php
```ここに言語を入力
<?php
$s = $_GET['s'];
$kodawari = $_GET['kodawari'];
//meta_query用
if($kodawari){
   foreach($kodawari as $val){
       $metaquerysp[] = array(
               'key'=>'kodawari',
               'value'=> $val,
               );
   }
}
$metaquerysp['relation'] = 'AND';
?>
<div>検索条件</div>
<?php if($s){ ?>検索キーワード:<?php echo $s; ?><br><?php } ?>
<?php if (is_array($kodawari)) { ?>カスタムフィールド:<?php
if (is_array($kodawari)) {
foreach($kodawari as $val){
if ($val === end($kodawari)) {
echo $val;
   }else{
echo $val.", ";
}
}
}
}
?>
<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>
<?php endwhile; else : ?>
<div>該当なし</div>
<?php endif;
wp_reset_query(); ?>
```
---
sarch.php
```ここに言語を入力
<div id="arty_sarch">
<form method="get" id="searchform" action="<?php bloginfo('url'); ?>">
   <label for="s" class="assistive-text">検索</label>
   <input type="text" name="s" id="s" placeholder="検索" />
   <div>カスタムフィールド</div>
   <label><input type="checkbox" name="kodawari[]" value="洋画">洋画</label><br>
   <label><input type="checkbox" name="kodawari[]" value="日本画">日本画</label><br>
   <label><input type="checkbox" name="kodawari[]" value="水彩画">水彩画</label><br>
   <label><input type="checkbox" name="kodawari[]" value="抽象画">抽象画</label><br>
   <label><input type="checkbox" name="kodawari[]" value="彫刻・立体物">彫刻・立体物</label>
   <input type="submit" value="検索" />
</form>
</div>
```
### 試したこと
過去に似たような質問がありその解答を試してみましたが、うまくいきませんでいた
[https://teratail.com/questions/74659](https://teratail.com/questions/74659)
[https://teratail.com/questions/73215](https://teratail.com/questions/73215)
よろしくお願い致します
よろしくお願い致します
追記
プラグインAdvanced Custom Fieldを導入してあります。
カスタムフィールドの設定は
フィールドラベル:kodawari、フィールド名:kodawari、フィールドタイプ:チェックボックス、説明:無記入、必須か?:はい、選択肢:洋画・日本画・水彩画・抽象画・彫刻立体物、Allow Custom:いいえ、デフォルト値:無記入、レイアウト:垂直、Toggle:いいえ、返り値:Value、条件判定:いいえ、ラッパーの属性:無記入
となっています
  • PHP

    25035 questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • WordPress

    9384 questions

    WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る