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:

  1. ZIP-Datei herunterladen
  2. ZIP-Datei entpacken
  3. Datei eb_get_archives.php in den Plugin-Ordner kopieren
  4. Plugin aktivieren
  5. 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:

  1. 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.
  2. Werden keine Kategorien (ID-Nummern) übergeben, dann werden alle Kategorien (Voreinstellung) berücksichtigt.
Ihnen hat dieser Artikel gefallen und Sie wollen mir unbedingt etwas Gutes tun? Dann klicken Sie einfach jeweils einmal auf die folgenden Symbole. Fertig! (Keine Bange. Sie kaufen damit weder eine Waschmaschine noch treten Sie irgendeiner Sekte bei. Sie helfen mir nur dabei ein besseres PageRanking zu erhalten. Das sagt man jedenfalls. Ob es stimmt? Keine Ahnung.) Danke! ;-)
Diese Icons verlinken auf Bookmark Dienste bei denen Nutzer neue Inhalte finden und mit anderen teilen können.
MisterWong Y!GG Webnews Digg del.icio.us StumbleUpon Reddit Technorati YahooMyWeb
erstellt am 8. April 2009 16:56    abgelegt unter: Plugins

nach oben

2 Kommentare zu “mit dem Plugin eb_get_archives nur bestimmte Kategorien in der Archivliste anzeigen”

  1. Bernd Marks:

    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.

  2. Elke Burmester:

    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.

Kommentar erstellen:
Bevor Sie einen Kommentar schreiben können, müssen Sie registriert und angemeldet sein. Bitte klicken Sie hier.