###前提・実現したいこと
wordpressでカスタムフィールドにデータを持った記事を複数保持しています。
search.phpを改良して、metaqueryを使った検索は可能ですが、
検索条件が思うようにカスタマイズできずにいます。
やりたいこと:
input name="s"で指定されたキーワードを元に複数カスタムフィールドから一致するものだけを表示する
現状:
1カスタムフィールドからのみであれば検索できるが、
複数カスタムフィールドを指定すると、全ての記事が表示されてしまう
###発生している問題・エラーメッセージ
1カスタムフィールドからのみであれば検索できるが、
複数カスタムフィールドを指定すると、全ての記事が表示されてしまう
###該当のソースコード
PHP
1$keyWords = $_GET['s']; 2 3//カスタムポストタイプ 4$post_type = 'products'; 5 6 7// 製品名 8$metaquery[] = array( 9 'key' => 'product_name', 10 'value' => $keyWords, 11 'compare' => 'LIKE', 12 'operator' => 'AND' 13); 14// 規格名 15$metaquery[] = array( 16 'key' => 'kikaku_name', 17 'value' => $keyWords, 18 'compare' => 'LIKE', 19 'operator' => 'AND' 20); 21// 仕様 22$metaquery[] = array( 23 'key' => 'description', 24 'value' => $keyWords, 25 'compare' => 'LIKE', 26 'operator' => 'AND' 27); 28// 製品公開日 29$currnet_date = date_i18n( 'y/m/d' ); 30$metaquery[] = array( 31 'key' => 'stage_date', 32 'value' => $currnet_date, 33 'compare' => '<=', 34 'type' => 'DATE', 35 'operator' => 'AND' 36); 37 38$metaquery['relation'] = 'OR'; 39 40global $wp_query; 41query_posts(array( 42 'post_type' => $post_type, 43 'meta_query' => $metaquery, 44 'posts_per_page' => -1, 45 ) 46);
###試したこと
1.relation条件の変更
$metaquery['relation'] = 'OR';を
$metaquery['relation'] = 'AND';とした場合、キーワードにかかわらず全て表示されてしまう
###補足情報(言語/FW/ツール等のバージョンなど)
PHP 5.3.3
WordPress 4.4.2
追記:
おそらく、and条件の組み合わせ方だけの問題ではないか?
という感覚はあるのですが、前に進めていません。
こういう条件を整理するための方法なども探しています。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。