Nachdem meine Einträge nun schon bis ins Jahr 2008 zurückreichen, wollte ich mein Archiv in der rechten Sidebar nach Jahren gruppieren und die einzelnen Monate nur dann anzeigen lassen, wenn man auf ein Jahr klickt. Und das geht durch folgenden code in der sidebar.php:
$args = array(
'type' => 'monthly',
'limit' => '',
'format' => 'html',
'before' => '',
'after' => '',
'show_post_count' => false,
'echo' => 0
);
$res = wp_get_archives( $args );
$archi = explode( '</li>' , $res );
$links = array();
foreach( $archi as $link ) {
$link = str_replace( array( '<li>' , "\n" , "\t" , "\s" ), '' , $link );
if( '' != $link )
$links[] = $link;
else
continue;
}
$y = 0;
foreach($links as $k => $v){
$match = array();
preg_match("/title='(.*?)'/si", $v, $match);
$tmp = explode(" ", $match[1]);
if($y != $tmp[1]){
echo "<li><b><a href='#' onclick='$(\".li_".$tmp[1]."\").show();'>".$tmp[1]."</a></b></li>";
}
$y = $tmp[1];
echo "<li style='margin-left:10px;display:none;' class='li_".$tmp[1]."'>".$v."</li>";
}
Das wars! Voraussetzung dafür ist nur, dass jQuery inkludiert ist.