WordPress 前臺搜索默認的搜索內(nèi)容是文章或頁面,還有自定義文章類型時定義的前臺可搜索的文章,如果我們只想搜索某個文章類型怎么辦?當然不能涼拌,其實只需要稍微修改一下WordPress 搜索功能的$query 對象就可以了,我們來看一下代碼。
// 設(shè)置WooCommerce只搜索 'product' 文章類型下面的文章
if ( !is_admin() ) {
function searchfilter($query) {
//限定對搜索查詢和非后臺查詢設(shè)置
if ($query->is_search && !is_admin() ) {
$query->set('post_type',array('product'));
}
return $query;
}
add_filter('pre_get_posts','searchfilter');
}
注意關(guān)鍵的地方product,我們在哪里找這個參數(shù)呢?在下圖中。

其實,如果你對 WordPress 自定義文章類型的方法比較熟悉,這個參數(shù)就是自定義文章類型的時候定義的文章類型的slug參數(shù)。
上面的代碼限制了前臺搜索只能搜索 “Product” 文章類型的文章,如果我們需要搜索 “Product” 和“文章”下面的文章(有點繞)?只需要稍微修改一下上面的代碼就可以了。
$query->set('post_type',array('product','post'));
需要注意的是:這個代碼的作用在前臺是全局性的,在前臺任何地方進行搜索都會受到這段代碼的影響,但是不會影響到后臺搜索功能,請放心使用。當然,如果你真想對后臺也下手,把上面代碼中的!is_admin()去掉就可以了。


