我试图从默认WP搜索中排除WooCommerce产品,但我需要保留所有其他帖子类型,包括CPT和将来创建的CPT。我正在尝试:
function searchFilter($query) {
if (!$query->is_admin && $query->is_search) {
$query->set(\'post_type\', array(\'post\', \'page\', \'CPT\'));
}
return $query;
}
add_filter(\'pre_get_posts\', \'searchFilter\');
在上面的代码中,我可以设置
post_type
我想选择什么帖子类型。但我只想排除“products”post\\u类型。有没有办法创建这样的参数?
最合适的回答,由SO网友:Wacław Jacek 整理而成
如果要从网站的所有前端搜索中排除“产品”帖子类型(=WooCommerce产品),可以使用以下代码:
function my_adjust_post_type_args( $args, $post_type ) {
if ( \'product\' === $post_type ) {
$args[\'exclude_from_search\'] = true;
}
return $args;
}
add_filter( \'register_post_type_args\', \'my_adjust_post_type_args\', 10, 2 );
注册“product”post类型时,它会修改“exclude\\u from\\u search”参数。查看文档了解
register_post_type() function 了解更多信息。