posts $where GROUP BY YEAR(post_date), MONTH(post_date), DAYOFMONTH(post_date) ORDER BY post_date DESC $limit"; $results = $wpdb->get_results($query); if($results) { $date_sorted = array(); // loop through dates foreach ($results as $result){ $date_posts = get_posts('year='.$result->year.'&monthnum='.$result->month.'&day='.$result->dayofmonth); if($date_posts){ // sort date posts by category foreach($date_posts as $post){ setup_postdata( $post ); $post_date = date('Ynj', strtotime( $post->post_date )); // change the category ID if(in_category(1)) { $date_sorted[$post_date]['first'][] = $post; } else { $date_sorted[$post_date]['last'][] = $post; } } } } // make full array with category test on top foreach($date_sorted as $key => $date){ if(isset($date['first'])) { $all_posts = array_merge($all_posts, $date['first'] ); } if(isset($date['last'])){ $all_posts = array_merge($all_posts, $date['last'] ); } } } // end if($results) ?>