如何隐藏私人帖子,即使用户是管理员

时间:2019-10-30 作者:pimstak

即使是管理员,我也不想查看自定义帖子类型的私人帖子。

添加了以下代码。

function my_function( $query ) {
    if ( ! is_admin() && ( is_singular( \'my_post_type\' ) || is_post_type_archive( \'my_post_type\' ) ) ) {
        $query->set( \'post_status\', \'publish\' );
    }

    // The following is not related to this question
    if ( ! is_admin() && $query->is_main_query() && $query->is_search() ) {
        $searchable_post_types = get_post_types( array( \'exclude_from_search\' => false ) );
        if( in_array( \'my_post_type\', $searchable_post_types ) ) {
            unset( $searchable_post_types[\'my_post_type\'] );
            $query->set( \'post_type\', $searchable_post_types );
        }
    }
}
add_filter( \'pre_get_posts\', \'my_function\' );
是不是错了?谢谢

1 个回复
SO网友:pimstak

我不能使用is_singular( \'my_post_type\' ) 在pre\\u get\\u posts中,因为此时未设置查询的对象。我可以使用post\\u type查询参数。