質問: 'OR'; ?> 検索条件 検索キーワード: カスタムフィールド: 検索結果 $metaquerysp, ) ); ?> 該当なし ``` 検索画面 ``` 検索 カスタムフィールド 大阪 奈良 滋賀 和歌山 ``` ### 試したこと $metaquerysp, 's' => $s, ) ); ?> 上記コードでは、テキストボックスでも検索できなかったので、「's' => $s,」を削除したところ最初に記載した一件目のみ表示が可能となりました。 上手く説明できているか分からないのですが よろしくお願いします。 インストールプラグイン ・Search Everything ・カスタムフィールドテンプレート miz様からアドバイスをいただき、var_dump()を使ったところ下記表示となりました。 array(2) { [0]=> array(2) { ["key"]=> string(8) "kodawari" ["value"]=> string(9) "和歌山" } ["relation"]=> string(2) "OR" } string(0) ""
回答: 以下、回答ではなく、デバッグの手順になります。 (1) まずは各変数に予期している値が予期している形で入っているか確認してください。 確認のため出力する際には、var_dump()を使うとわかりやすいです。 ``` var_dump($metaquerysp); var_dump($s); ``` (2) var_dumpの結果、値は正常そうですが、以下の点がひっかかります。 meta_queryの解説には、 > > relation (文字列) - meta_query の中に2つ以上の配列を入れたときの論理的な関係。使える値は 'AND' と 'OR' です(デフォルト: 'AND')。ひとつだけ配列を入れるときは使わないでください。 > > > とあるので、念のため、カスタムフィールドの値がひとつのときには、relationをセットしないようにしてみてください。 ``` if( 1