WordPressのサイト内検索対象に「カテゴリ」を追加し「本文」は含めないようにする。
検索対象は「タイトル」と「カテゴリ」にする。
以下を参考に少しカスタマイズした。
「\wp-content\themes\iconic-one\functions.php」に以下を追加。
function custom_search($search, $wp_query) { global $wpdb; //サーチページ以外だったら終了 if (!$wp_query->is_search) return $search; if (!isset($wp_query->query_vars)) return $search; // カテゴリ名も検索対象に $search_words = explode(' ', isset($wp_query->query_vars['s']) ? $wp_query->query_vars['s'] : ''); if ( count($search_words) > 0 ) { $search = ''; foreach ( $search_words as $word ) { if ( !empty($word) ) { $search_word = $wpdb->escape("%{$word}%"); $search .= " AND ( {$wpdb->posts}.post_title LIKE '{$search_word}' OR {$wpdb->posts}.ID IN ( SELECT distinct r.object_id FROM {$wpdb->term_relationships} AS r INNER JOIN {$wpdb->term_taxonomy} AS tt ON r.term_taxonomy_id = tt.term_taxonomy_id INNER JOIN {$wpdb->terms} AS t ON tt.term_id = t.term_id WHERE t.name LIKE '{$search_word}' ) ) "; } } } return $search; } add_filter('posts_search','custom_search', 10, 2);