カスタムフィールドの絞り込み検索(ANDとORの混在)
-
カスタムフィールドで以下のような値を設定しています。
・フィールド名:”subject” 値:”内科,小児科,神経内科”
・フィールド名:”open” 値:”mon,tue,wed,fri”実現したい検索内容は
「内科or小児科」かつ「水曜or木曜」に診療している病院 です。現在、診療科目のみの検索は下記のように実現できています。
[function.php]function customize_main_query($query) { if ( is_admin() || ! $query->is_main_query() ){ return; } if ( isset($query->query['s']) ){ $query->is_search = true; } $condition = array(); if( isset($query->query['post_type']) && ($query->query['post_type'] == 'hospital') ) { if ( isset($query->query['subject']) ){ foreach ($query->query['subject'] as $name){ $condition[] = array('key' => 'hospital_subject', 'value' => $name, 'compare' => 'LIKE'); } $condition['relation'] = 'OR'; } } if ( $query->is_search() ){ $query->set( 'posts_per_page', '50' ); $query->set( 'order', 'ASC' ); $query->set( 'meta_query', $condition ); } } add_action( 'pre_get_posts', 'customize_main_query' );
これに診療曜日の条件を加えるにはどうすればよいでしょうか。
—
そもそも、
・カスタムフィールドではなくカスタムタクソノミーにすべき?
・pre_get_postsでよいのか?posts_searchか?
という点も気になっています。他の投稿タイプ(飲食店、サロンなど)も同様に絞り込み検索を実装予定で、
pre_get_postsにずらずらと書き並べていってよいものか疑問です。
2件の返信を表示中 - 1 - 2件目 (全2件中)
2件の返信を表示中 - 1 - 2件目 (全2件中)
- トピック「カスタムフィールドの絞り込み検索(ANDとORの混在)」には新たに返信することはできません。