mit dem Plugin eb_get_archives nur bestimmte Kategorien in der Archivliste anzeigen
Am 4. April habe ich das Plugin 123 Multihost von Putzlowitsch entdeckt und installiert
In diesem Zusammenhang habe ich gestern allerdings festgestellt, dass ich bei der Auflistung des Monatsarchivs mit der Funktion wp_get_archives keine Kategorien ausschließen kann. Zusätzlich kann ich die Liste nicht vor der Ausgabe bearbeiten. Beides finde ich ziemlich ärgerlich und habe aus diesem Grund das Plugin eb_get_archives geschrieben.
Mein Plugin beinhaltet die Funktion wp_get_archives, die ich mit 2 zusätzlichen Argumenten (echo und category__in) erweitert habe. Bei den Änderungen hat mir der Beitrag von conceptify weitergeholfen.
Wenn Sie dieses ebenfalls nutzen wollen, so folgen Sie den Installationsanweisungen.
Installation:
- ZIP-Datei herunterladen
- ZIP-Datei entpacken
- Datei eb_get_archives.php in den Plugin-Ordner kopieren
- Plugin aktivieren
- Templatedatei (meistens sidebar.php) wie folgt ändern.
Templatedatei ändern:
Ersetzen Sie einfach die Zeilen, die sich meistens in der sidebar.php befinden:
<li><h2>Archiv</h2>
<ul>
<?php
wp_get_archives(’type=monthly&limit=12&before=<li style=”white-space: nowrap;”>&after=</li>’);
?>
</ul>
</li>
mit den folgenden Zeilen:
<li><h2>Archiv</h2>
<ul>
<?php
if (function_exists(’eb_get_archives’)) {
$my_archive_sidebar=eb_get_archives(’type=monthly&limit=12&before=<li style=”white-space: nowrap;”>&after=</li>&category__in=7,8,9,10&echo=0′);
echo $my_archive_sidebar;
} else {
wp_get_archives(’type=monthly&limit=12&before=<li style=”white-space: nowrap;”>&after=</li>’);
}
?>
</ul>
</li>
Wenn Sie so wie ich eine Kategorie mit allen Unterkategorien anzeigen lassen wollen, aber die Arbeit scheuen, dann können Sie statt den oben genannten Zeilen die folgenden (zusätzlich) einfügen:
<?php
$categories= get_categories(’child_of=7′);
$my_cats =’7′;
foreach ($categories as $mycat) {
$my_cats .= ‘, ‘.$mycat->cat_ID;
}
?>
<li><h2>Archiv</h2>
<ul>
<?php
if (function_exists(’eb_get_archives’)) {
$my_archive_sidebar=eb_get_archives(’type=monthly&limit=12&before=<li style=”white-space: nowrap;”>&after=</li>&category__in=’.$my_cats.’&echo=1′);
} else {
wp_get_archives(’type=monthly&limit=12&before=<li style=”white-space: nowrap;”>&after=</li>’);
}
?>
</ul>
</li>
Hinweise:
- Der default-Wert des Arguments echo ist 1. Ist der Wert 0, dann wird die Liste nicht ausgegeben und kann aus diesem Grund nachträglich bearbeitet werden.
- Werden keine Kategorien (ID-Nummern) übergeben, dann werden alle Kategorien (Voreinstellung) berücksichtigt.









16:56
abgelegt unter: 
26. Juli 2009 um 01:08 Uhr
Hallo,
da ist genau das Plugin, wonach ich gesucht habe. Allerdings enthält es noch einen Fehler. Die Auswahlbox bietet die richtigen Ergebnisse an. Wenn man dann allerdings einen Monat/Jahr/Tag wählt, werden dann trotzdem die Beiträge aller Kategorien dieses Monats angezeigt. Beim Aufbau der URL finden die selektierten Kategorien nämlich keine Berücksichtigung. Wahrscheinlich geht das bei mehreren Kategorien auch gar nicht (jedenfalls nicht so; vielleicht über die Suche und nicht das Archiv); bei einer – genau der Fall, den ich brauche – allerdings schon. Ich versuch mich mal daran, dass noch zu implementieren. Bei Bedarf, kann ich meine Ergebnisse gern übermitteln.
MfG
Bernd Marks
Edit:
(auf Wunsch von Bernd Marks nachträglich von Elke Burmester eingefügt)
Da ich wie gesagt immer nur die Archive einer Kategorie angezeigt
bekommen möchte, habe ich einfach hinter
$url = get_month_link(…);
noch folgende Zeile eingefügt:
$url = str_replace(get_option(’home’),
get_option(’home’).”/”.get_cat_name($category__in), $url);
Für die Erzeugung des Links bei mehreren Kategorien wird man wohl aber
tatsächlich von wp_get_archives abrücken und auf eine Suchanfrage
ausweichen müssen.
28. Juli 2009 um 15:57 Uhr
Das würde mich (und wahrscheinlich auch andere) sehr freuen.
Vielen Dank im Voraus.
In jederm Fall wünsche ich Ihnen und allen anderen einen wunderschönen Sommer und erholsame Ferientage.