function query_get_post_types($query, $_if_empty_set_post_types = FALSE) { $query_post_types = isset($query->query_vars['post_type']) ? $query->query_vars['post_type'] : array(); if (!empty($query_post_types) && !is_array($query_post_types)) { $query_post_types = (array) $query_post_types; } if (empty($query_post_types) && !is_array($query_post_types)) { $query_post_types = array(); } /** * * If empty post type query field AND use default category taxonomy, use post * To check further * */ if (empty($query_post_types) && $_if_empty_set_post_types === FALSE) { $taxonomies = array(); if (isset($query->tax_query) && isset($query->tax_query->queries)) { $taxonomies = APTO_query_utils::get_query_taxonomies($query->tax_query->queries); } if (count($taxonomies) > 0 && count($taxonomies) < 2) { reset($taxonomies); $query_taxonomy = current($taxonomies); if ($query_taxonomy == 'category') { $query_post_types[] = 'post'; } } } if (empty($query_post_types) && $_if_empty_set_post_types === TRUE) { $taxonomies = array(); if (isset($query->tax_query) && isset($query->tax_query->queries)) { $taxonomies = APTO_query_utils::get_query_taxonomies($query->tax_query->queries); } $ignore = array('revision', 'nav_menu_item'); foreach ($this->get_post_types($ignore) as $pt) { $object_taxonomies = $pt === 'attachment' ? get_taxonomies_for_attachments() : get_object_taxonomies($pt); if (array_intersect($taxonomies, $object_taxonomies)) { $query_post_types[] = $pt; } } //v3.0 ??????chose the first /* if(count($query_post_types) > 1) $query_post_types = array_slice($query_post_types, 0, 1); */ if (count($query_post_types) < 1) { $query_post_types[] = 'post'; } } return $query_post_types; }