Query pulling a single post per month

Maybe a bit less hacky:

$months = array();

while(....){

  list($month, $year) = explode("https://wordpress.stackexchange.com/", get_the_date('n/y')); // eg. 7/11
  if(in_array($month, $months)) continue; // skip

  $months[] = $month;

  echo '<li><a href="'.get_month_link($month, $year).'">'.get_the_date('F Y').'</a></li>';

}

If you’re only getting 6 posts and you don’t need pagination that I guess it’s OK to go this way.

Otherwise you need to build your own SQL query to pull out only one post for each month…

You could also try to make 6 queries for each month, like:

$january_posts = new WP_Query('monthnum=1&posts_per_page=1'));