これは理想的な解決策ではないかもしれませんし、あまりにもクリーンではないかもしれませんが、Monthly Archiveを使用し、monthlyarchiveclass の getMonths() メソッドを変更してこれを含めました。
$byYear = array();
foreach($month_years_unique as $month_year){
$year = explode('-',$month_year);
$byYear[$year[1]] = array();
}
foreach($results_months as $result){
$year = $result['year'];
$id = $result['id'];
$byYear[$year] = array(
$id => $result,
);
}
if(count($byYear) != 0){
foreach($byYear as $year => $value){
$html .= '<div class="archivecolumn"><h1>'.$year.'</h1>';
$html .= '<ul class="itemlist">';
foreach($value as $item){
$cat = $this->getCatName($item['catid']);
$link = 'index.php/' . $cat . '/' . $item['id'] . '-' . $item['alias'];
$html .= '<li>';
$html .= '<a href="'.$link.'">'.$item['title'].'</a>';
$html .= '</li>';
}
$html .= '</ul>';
$html .= '</div>';
}
} else {
$html .= 'No archived works.';
}