从 WordPress 搜索中排除项目帖子类型

问题描述 投票:0回答:1

我想从 WordPress 的搜索栏结果中删除我们的项目。我遇到过以下代码片段来执行此操作,但是,此方法是列出所有帖子 ID。有没有办法一次性排除所有

/projects/

function ss_search_filter( $query ) {
    if ( !$query->is_admin && $query->is_search && $query->is_main_query() ) {
        $query->set( 'post__not_in', array( 1, 2, 3 ) );
    }
}
add_action( 'pre_get_posts', 'ss_search_filter' );
wordpress search
1个回答
0
投票

由于这是 Divi,因此项目帖子类型是自定义的。您应该能够使用以下过滤器。注意,初始函数中存在一些错误,特别是

is_search()
is_admin()
$query
对象方法,因此应该使用
()
来表示。另外,需要归还
$query
- 否则它将无法按预期工作。

function ss_search_filter( $query ) {
    // If the query is_admin() bail
    if ( $query->is_admin() ) :
        return $query;
    endif;
    
    // If the query is_search and is_main_query
    if ( $query->is_search() && $query->is_main_query() ) {
        // set the post type to only post types you want returned.
        $query->set( 'post_type', ['page', 'post' ] );
    }
    
    // Return the query.
    return $query;
}
add_action( 'pre_get_posts', 'ss_search_filter' );
© www.soinside.com 2019 - 2024. All rights reserved.