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

问题描述

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

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

现在我有这个代码片段,但它似乎不起作用。它仅用于搜索排除,但我需要排除搜索页面存档页中的类别。

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' );

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...