Ich habe für die Aktualisierung des Layouts auf einspaltig ja auch den „Footer“ angepasst. Hier werden die 25 neuesten Beiträge und das „Archiv“ angezeigt. Das Archiv wird über ein Widget im Theme ausgegeben, dort kann man einstellen ob man eine Liste oder ein Drop-Down-Menü haben will. In meinem Archiv in der Fußzeile ist jeder Monat aufgelistet, in dem ein Beitrag erschienen ist. Da ich das Blog ja schon seit 2009 führe, kommt hier eine recht lange Liste zusammen. Diese wollte ich auf eine bestimmte Anzahl beschränken.

Das war gar nicht so einfach. Ich weiss zwar, dass der Footer bei mir in den Widgets angegeben ist und dort das Archiv eingebaut, aber dies genau an dieser Stelle zu beschränken war recht tricky. Immerhin habe ich beim Googlen einen Beitrag gefunden, die Anzahl der Monate im Archiv zu beschränken. Ein guter Anhaltspunkt. Aber das war mir zu rabiat. Ich wollte ja nur in der Fußzeile die Anzahl eingrenzen. Es gibt ja bestimmte Seiten (z.B. die 404-Seite), die das vollständige Archiv weiterhin anzeigen sollen. Und mit der o.g. Funktion wäre auch dieses beschränkt worden.

Also benötigte ich eine Wenn-Dann-Bedingung in der functions.php. Ich habe es zunächst mit is_active_sidebar versucht. Das stelle sich aber als Holzweg heraus, denn diese Funktion prüft, ob die Sidebar namens „Footer“ (oder mit der entsprechenden ID) generell aktiviert ist und nicht, ob ich mich gerade „in ihr“ befinde.

Also musste ich ein wenig drum herum bauen und habe das Archiv nur auf bestimmten Seitentypen beschränkt:

1
2
3
4
5
6
7
8
function limit_footer_archive( $months ) {
	/* This function limits the number of months displayed in the archive only for the footer area */
	if ( is_singular() || is_home() || is_category() || is_search() ) :
		$months['limit'] = 25;
		return $months;
	endif;
}
add_filter( 'widget_archives_args', 'limit_footer_archive' );

Zur Referenz der einzelnen Bedingungen:

Vielleicht werde ich mir auch eine Archiv-Seite bauen, in der das vollständige (!) Archiv mit allen Beiträgen gelistet wird :-)

Kommentar hinterlassen

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.