diff --git a/includes/classes/Indexable/Post/Post.php b/includes/classes/Indexable/Post/Post.php index 51735dd967..f28ec94775 100644 --- a/includes/classes/Indexable/Post/Post.php +++ b/includes/classes/Indexable/Post/Post.php @@ -1322,10 +1322,14 @@ function( $tax_query ) use ( $args ) { ) ) ); + } - if ( is_user_logged_in() ) { - $statuses = array_merge( $statuses, get_post_stati( array( 'private' => true ) ) ); - } + /** + * Per WP default behavior, private post statuses should only be visible to editors and + * administrators. Even in the front-end. + */ + if ( current_user_can( 'administrator' ) || current_user_can( 'editor' ) ) { + $statuses = array_merge( $statuses, get_post_stati( array( 'private' => true ) ) ); } $statuses = array_values( $statuses );