更改默认的wp_search_stopwords

时间:2017-02-08 作者:paulguy

我想更改wordpress搜索中的默认停止词。我相信这很容易,但我想不出来。

根据此https://developer.wordpress.org/reference/hooks/wp_search_stopwords/ 默认停止字为:

$words = explode( \',\', _x( \'about,an,are,as,at,be,by,com,for,from,how,in,is,it,of,on,or,that,the,this,to,was,what,when,where,who,will,with,www\',
        \'Comma-separated list of search stopwords in your language\' ) );
所以,我想我可以这样添加\\u过滤器:

add_filter( \'wp_search_stopwords\', array(\'meh\') );
但是meh 仍将应用于搜索结果。

我找到了这个https://core.trac.wordpress.org/ticket/25587 最后有以下内容,但我不知道接下来该怎么做do whatever you want 零件:

function a_whatever() {
    remove_filter( \'wp_search_stopwords\', __FUNCTION__ );
    // do whatever you want
}
add_filter( \'wp_search_stopwords\', \'a_whatever\' );
谢谢!

1 个回复
最合适的回答,由SO网友:nibnut 整理而成

很接近:您确实需要定义一个过滤器,但您还没有完全正确地定义过滤器:

function add_meh_stopword($stopwords) {
    $stopwords[] = \'meh\'; // *add* "meh" to the list of stopwords
    // if instead you want to completely replace the list of stopwords
    // use $stopwords = array(\'meh\');
    return $stopwords;
}
add_filter( \'wp_search_stopwords\', \'add_meh_stopword\');
第二个参数add_filter 函数采用“可调用”,即在本例中为函数名。然后,该函数返回修改后的停止字列表。

希望这有帮助!

相关推荐

apply_filters() function

我用过apply_filters() 从WordPress帖子中检索内容时,如:$content=$query_val->post_content; $content = apply_filters( \'the_content\', $content ); 当我使用apply_filters() 这个apostrophe( \' ) 在我的文本中显示了一些字符。在我移除后apply_filters() 它显示正确。所以请解释清楚!!它在做什么?我已引用此链接Referal_lin