/** * Get Ideas matching the query args * * @package WP Idea Stream * @subpackage ideas/functions * * @since 2.0.0 * * @param array $args custom args to merge with default ones * @uses wp_idea_stream_ideas_per_page() to get the preferences about pagination * @uses wp_idea_stream_get_idea_var() to get globalized vars * @uses wp_parse_args to merge custom args with default ones * @uses WP_Idea_Stream_Idea::get() to get the ideas if the main query is not used or overriden * @uses wp_idea_stream_set_idea_var() to globally set a var * @uses apply_filters() call 'wp_idea_stream_ideas_get_ideas' to override/edit the retrieved ideas * @return array requested ideas */ function wp_idea_stream_ideas_get_ideas($args = array()) { $get_args = array(); $ideas = array(); $default = array('author' => 0, 'per_page' => wp_idea_stream_ideas_per_page(), 'page' => 1, 'search' => '', 'exclude' => '', 'include' => '', 'orderby' => 'date', 'order' => 'DESC', 'meta_query' => array(), 'tax_query' => array()); if (!empty($args)) { $get_args = $args; } else { $main_query = wp_idea_stream_get_idea_var('main_query'); if (!empty($main_query['query_vars'])) { $get_args = $main_query['query_vars']; unset($main_query['query_vars']); } $ideas = $main_query; } // Parse the args $r = wp_parse_args($get_args, $default); if (empty($ideas)) { $ideas = WP_Idea_Stream_Idea::get($r); // Reset will need to be done at the end of the loop wp_idea_stream_set_idea_var('needs_reset', true); } $ideas = array_merge($ideas, array('get_args' => $r)); /** * @param array $ideas associative array to find ideas, total count and loop args * @param array $r merged args * @param array $get_args args before merge */ return apply_filters('wp_idea_stream_ideas_get_ideas', $ideas, $r, $get_args); }