WP搜索排除字符串中的最后一个字母

时间:2017-03-27 作者:Alex Pain

我需要从搜索字符串中排除最后一个字母,因为WP搜索对单词敏感。

我的意思是像用户输入单词“dogs”这样的情况,但在标题中我没有狗,我有“dog”。在这种情况下,用户得到0个结果,但如果我们过滤搜索字符串并删除最后一个字母,则在发送搜索结果之前,用户会从“dog”获得结果。

代码很简单

$word = substr($word, 0, -1); 
其中$word是一个搜索字符串。但我找不到钩子。是否有任何筛选器或挂钩,或者在哪里处理搜索字符串文件?

1 个回复
SO网友:Laxmana

您可以使用get_search_query 滤器

function mySearchFunction($search_term){

    $search_term = substr($search_term, 0, -1);

    return $search_term;

}

add_filter(\'get_search_query\',\'mySearchFunction\');

EDIT

筛选查询结果的操作:

function mySearchFilterFunction($query) {

 if ( !is_admin() && $query->is_main_query() && $query->is_search) {

    $search_term = $query->get(\'s\');
    $query->set(\'s\', substr($search_term, 0, -1));

 }

}
add_action( \'pre_get_posts\', \'mySearchFilterFunction\');
get_search_query 不需要筛选器,因为它使用get_query_var( \'s\' ) 由我们的pre_get_posts 行动

相关推荐

如何读取WordPress$Query关联数组(散列)键的值

WordPress编程新手(来自更为传统的环境),并试图了解其一些“独特”特性。我们的网站上有一个目录页,此代码驻留在functions.php, 如果条件为true,则调整结果。if( $query->is_post_type_archive( \'directory\' ) ){ ...//do stuff } 我想知道如何获取is_post_type_archive 这就是“目录”当我对值使用测试时。。。var_dumb($query->is_post