WordPress Archiv Widget: gruppieren nach Jahren

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.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.