【问题标题】:Can I exclude a specific category of a custom post type from both search and archives?我可以从搜索和存档中排除自定义帖子类型的特定类别吗?
【发布时间】:2021-06-02 10:08:43
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: wordpress search categories taxonomy exclude-constraint


    【解决方案1】:

    您是否尝试过使用 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' );
    

    【讨论】:

    • 当我尝试代码时,它会抛出错误:语法错误,意外';',期待')'
    • 答案已更新,它缺少查询并且缺少定位归档页面的 main_query 函数
    • 我仍然得到一个错误:语法错误,意外';',期待')'
    • 第三次幸运,抱歉不确定发生了什么,但 if 语句缺少大括号
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-19
    相关资源
    最近更新 更多