カスタムフィールド投稿で検索ヒットできない。
-
カスタム投稿+カスタムフィールド投稿の検索機能がうまく作動しません。
検索フォーム
<coda> <form method="get" action="<?php bloginfo( 'url' ); ?>"> <input type="hidden" name="post_type" value="clinic"> <input name="s" id="s" type="text" /> <input id="submit" type="submit" value="" /> </form> </coda>
function.php
function custom_search($search, $wp_query) { //サーチページ以外だったら終了 if (!$wp_query->is_search) return; //投稿記事のみ検索 $search .= " AND post_type = 'clinic' "; return $search; } add_filter('posts_search','custom_search', 10, 2);
serch.php
<?php global $wpdb; // If you use a custom search form // $keyword = sanitize_text_field( $_POST['keyword'] ); // If you use default WordPress search form $keyword = get_search_query(); $keyword = '%' . like_escape( $keyword ) . '%'; // Thanks Manny Fleurmond // Search in all custom fields $post_ids_meta = $wpdb->get_col( $wpdb->prepare( " SELECT DISTINCT post_id FROM {$wpdb->postmeta} WHERE meta_value LIKE '%s' ", $keyword ) ); // Search in post_title and post_content $post_ids_post = $wpdb->get_col( $wpdb->prepare( " SELECT DISTINCT ID FROM {$wpdb->posts} WHERE post_title LIKE '%s' OR post_content LIKE '%s' ", $keyword, $keyword ) ); $post_ids = array_merge( $post_ids_meta, $post_ids_post ); // Query arguments $args = array( 'post_type' => 'post', 'post_status' => 'publish', 'post__in' => $post_ids, ); $query = new WP_Query( $args ); if ( $query->have_posts() ): while ( $query->have_posts() ) : $query->the_post(); ?>
以下中略
カスタムフィールド投稿の内容としては、
・都道府県
・市区町村
・丁目以下番地という風にしてあります。
検索したいときに、都道府県市区町村丁目以下番地
例:京都府京田辺市花住坂x丁目xx-xx
を検索ヒットしたい。
どなたか教授ください。
注)
search.php
は他業者が作成したため、都道府県別のみだけ検索になっております。
- トピック「カスタムフィールド投稿で検索ヒットできない。」には新たに返信することはできません。