这实际上是一个棘手的问题exact 有两种方法可以解释你的问题-
只查找标题或内容完全匹配的帖子。例如,如果您搜索My post is super 您不会返回带有标题的帖子My post is super awesome.准确的短语存在的贴子,而不仅仅是短语的一部分。例如,如果您搜索his house 您不会返回带有标题的帖子I love this house, 但你会写一篇标题为I\'m going to his house (鲁莽的例子,但希望你能抓住要点)幸运的是,您可以任意选择,但方法1要简单得多。将以下任一示例添加到functions.php 文件-
<小时>一零
add_action(\'pre_get_posts\', \'my_make_search_exact\', 10);
function my_make_search_exact($query){
    if(!is_admin() && $query->is_main_query() && $query->is_search) :
        $query->set(\'exact\', true);
    endif;
}
 Themy_make_search_exact() 函数将在每次进行查询时调用,使用pre_get_posts 行动挂钩。为了确保在不需要时不干扰查询,我们在函数中检查我们是否没有查看管理区域,是否正在构造主查询以及是否正在进行搜索。
<小时>
Method 2
add_filter(\'posts_search\', \'my_search_is_exact\', 20, 2);
function my_search_is_exact($search, $wp_query){
    global $wpdb;
    if(empty($search))
        return $search;
    $q = $wp_query->query_vars;
    $n = !empty($q[\'exact\']) ? \'\' : \'%\';
    $search = $searchand = \'\';
    foreach((array)$q[\'search_terms\'] as $term) :
        $term = esc_sql(like_escape($term));
        $search.= "{$searchand}($wpdb->posts.post_title REGEXP \'[[:<:]]{$term}[[:>:]]\') OR ($wpdb->posts.post_content REGEXP \'[[:<:]]{$term}[[:>:]]\')";
        $searchand = \' AND \';
    endforeach;
    if(!empty($search)) :
        $search = " AND ({$search}) ";
        if(!is_user_logged_in())
            $search .= " AND ($wpdb->posts.post_password = \'\') ";
    endif;
    return $search;
}
 贷记至tinyGod 对于此答案-http://tinygod.pt/make-wordpress-search-exact/