diff --git a/wp-includes/query.php b/wp-includes/query.php
index 6ba10c4..e609c8f 100644
--- a/wp-includes/query.php
+++ b/wp-includes/query.php
@@ -3140,8 +3140,10 @@ class WP_Query {
 		$author_obj = $this->get_queried_object();
 
 		$author = (array) $author;
-
-		if ( in_array( $author_obj->ID, $author ) )
+		
+		if( $author_obj->ID > 0 && in_array( $author_obj->ID, $author ) )
+			return true;
+		elseif ( in_array( $author_obj->ID, $author, true ) )
 			return true;
 		elseif ( in_array( $author_obj->nickname, $author ) )
 			return true;
@@ -3172,8 +3174,10 @@ class WP_Query {
 		$cat_obj = $this->get_queried_object();
 
 		$category = (array) $category;
-
-		if ( in_array( $cat_obj->term_id, $category ) )
+		
+		if ( $cat_obj->term_id > 0 && in_array( $cat_obj->term_id, $category ) )
+			return true;
+		elseif ( in_array( $cat_obj->term_id, $category, true ) )
 			return true;
 		elseif ( in_array( $cat_obj->name, $category ) )
 			return true;
@@ -3400,11 +3404,13 @@ class WP_Query {
 
 		$page = (array) $page;
 
-		if ( in_array( $page_obj->ID, $page ) )
+		if ( $page_obj->ID > 0 && in_array( $page_obj->ID, $page ) )
 			return true;
+		elseif ( in_array( $page_obj->ID, $page, true ) )
+				return true;
 		elseif ( in_array( $page_obj->post_title, $page ) )
 			return true;
-		else if ( in_array( $page_obj->post_name, $page ) )
+		elseif ( in_array( $page_obj->post_name, $page ) )
 			return true;
 
 		return false;
@@ -3480,8 +3486,10 @@ class WP_Query {
 		$post_obj = $this->get_queried_object();
 
 		$post = (array) $post;
-
-		if ( in_array( $post_obj->ID, $post ) )
+		
+		if ( $post_obj->ID > 0 && in_array( $post_obj->ID, $post ) ) 
+			return true;
+		elseif ( in_array( $post_obj->ID, $post, true ) )
 			return true;
 		elseif ( in_array( $post_obj->post_title, $post ) )
 			return true;
