現在wordpressのpostからキーワードに当てはまる条件検索をしたいと模索しています。
色々なサイトを参考にしようとしましたが、どこもカスタムフィールドだったらカスタムフィールドのみでしかコードが書いておらず、自分で書き直してみてもうまくいきません。
私が実装したいのは、postのタイトルとカスタムフィ−ルド(STRING型)のrelation = 'OR'検索です。
以下コードになります。
<?php $search_word = get_search_query(); query_posts( array( 'relation'=>'OR', 'nopaging' => 1, 'orderby' => 'title', 'order' => 'ASC', array( 's' => $search_word, 'exact' => false, 'nopaging' => 1, ), 'meta_query' => array( array( 'key'=>'製造元のスラッグ', 'value'=> $search_word, 'compare'=>'LIKE', 'nopaging' => 1, ) ) ) );
こちらのコードだとカスタムフィールドの値からは上手く絞り込めているようなのですが、タイトルからはうまく取得できていないようです。
<?php $search_word = get_search_query(); query_posts(array( 's' => $search_word, 'exact' => false, 'orderby' => 'title', 'order' => 'ASC', 'nopaging' => 1 ));
逆にこちらのコードだとタイトルで上手く絞り込めているものの、言わずもがな、カスタムフィールドの値で絞り込めるはずもありません。
query_postsに詳しい方アドバイスをお願いします!
※以下追記
BAに選ばせて頂いた方のサイトを参考にして、
$search_word = get_search_query(); $meta_query = array(); $args = array(); $meta_query[] = array( 'key' => '製造元のスラッグ', 'value' => $search_word, 'compare' => 'LIKE' ); //if there is more than one meta query 'or' them if(count($meta_query) > 1) { $meta_query['relation'] = 'OR'; } // The Query $args['orderby'] = 'title'; $args['order'] = 'ASC'; $args['post_type'] = 'post'; $args['_meta_or_title'] = $search_word; //not using 's' anymore $args['meta_query'] = $meta_query; $the_query = new WP_Query($args);
と書き換えたらやりたいことが実装できました!
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/04/02 12:36
2018/04/03 02:33
2018/04/03 02:54
2018/04/04 06:15