我可以从搜索和存档中排除自定义 post 类型的特定类别吗?

Can I exclude a specific category of a custom post type from both search and archives?

我有一个自定义 post 类型“课程”,此 post 类型中类别的分类法是“课程类别”。

我有一个名为“学院”的课程类别,我想从任何搜索以及该自定义 post 类型的任何存档页面中排除该类别。

现在我有这段代码,但它似乎不起作用。它仅用于搜索排除,但我需要在 搜索页面和存档页面 .

中排除类别
function wpb_search_filter( $query ) {
    if ( $query->is_search && !is_admin() )
        $query->set('post_type', array('courses');
        $query->set( 'course-category','-68' );
    return $query;
}
add_filter( 'pre_get_posts', 'wpb_search_filter' );

您尝试过使用 is_post_type_archive() 吗?

function wpb_search_filter( $query ) {
    if ( $query->is_search && !is_admin() || $query->is_main_query() && !is_admin() && $query->is_post_type_archive('courses') ) {
        $query->set('post_type', array('courses');
        $query->set( 'course-category','-68' );
        return $query;  
    }
}
add_filter( 'pre_get_posts', 'wpb_search_filter' );