Unterschiedliche Blogartikel mit dem Plugin Popular Posts

Mein absoluter Liebling unter den Plugins für die interne Verlinkung meiner Blogartikel ist das Popular Posts Plugin von Rob Marsh. Wie alle seine Plugins ist es höchst flexibel und bietet eine Menge an Konfigurationsmöglichkeiten. Für meine Sidebar habe ich mir nun eine Verlinkung unterschiedlicher Blogartikel auf verschiedenen Seiten ausgedacht, die ich Euch in diesem Beitrag vorstellen möchte. Da ich dazu dieses Plugin mehrfach in unterschiedlichen Konfigurationen einsetze, muss ich auf die manuelle Integration in meinem WordPress Theme zurückgreifen.

Das Verlinkungskonzept hinter meiner Idee sieht vor, dass auf Startseite, in den monatlichen Archiven, auf den Seiten, bei den Suchergebnissen sowie auf allen weiterführenden Seiten die Hauptkonfiguration der Popular Posts angezeigt wird.
In allen Kategorien sowie den zugeordneten Blogartikeln und Tag Archiven zeige ich jeweils unterschiedliche Popular Posts auf Kategoriebasis an.

Dazu habe ich erst einmal meine gewünschten Standard-Einstellungen im Admin Bereich bei den Popular Posts vorgenommen (Einstellungen / Popular Posts). Damit diese nur auf den oben erwähnten Seiten angezeigt werden, ist folgender PHP Code in der sidebar.php notwendig:

<?php if (is_home() || is_month() || is_search() || is_page() || is_paged ()) { ?>
	<div class="widget-überschrift">meine überschrift</div>
	<div class="mein-widget"><?php popular_posts(); ?></div>
<?php } ?>

Übersetzt bedeutet diese Abfrage: Bei der Startseite – is_home() – oder den monatlichen Archiven – is_month() – oder den Suchergebnissen – is_search() – oder den Seiten – is_page() – oder den weiterführenden Seiten – is_paged() zeige mein Widget Popular Post an.

Im zweiten Schritt spreche ich meine erste Kategorie und die zugehörigen Blogartikel mit den Conditional Tags is_category(1) und in_category(1) an. Der Tag is_category(1) definiert die Kategorie mit der ID 1, der Tag in_category(1) dagegen alle Blogartikel, die der Kategorie mit der ID 1 zugeordnet sind. Dieser Tag beinhaltet leider auch jede andere Blogseite – wie zum Beispiel das Archiv – auf der als erster Beitrag ein Blogartikel dieser Kategorie angezeigt wird. So habe ich zwar mein Tag Archiv damit abgefrühstückt, muss aber die anderen Seiten, die ich im ersten Schritt definiert habe davon ausschließen, da ich dort sonst zwei verschiedene Popular Posts angezeigt bekomme. Folgender PHP Code ist dafür notwendig:

<?php if (is_category(1) || (in_category(1) && !is_home() && !is_month() && !is_search() && !is_page() && !is_paged()) ) { ?>
	<div class="widget-überschrift">meine überschrift</div>
	<div class="mein-widget"><?php popular_posts('included_cats=1&limit=10'); ?></div>
<?php } ?>

Übersetzt frage ich damit ab: In der Kategorie mit der ID 1 – is_category(1) – oder allen anderen Seiten, denen der erste Blogartikel der Kategorie mit der ID 1 zugeordnet ist – in_category(1) – und nicht auf der Startseite – !is_home() – sowie auch nicht in den monatlichen Archiven – !is_month() – sowie auch nicht auf den Suchergebnisseiten – !is_search() – sowie auch nicht auf den Seiten – !is_page() – und nicht auf den weiterführenden Seiten – !is_paged() – zeige folgendes Popular Posts Widget an, das nur 10 Blogartikel – limit=10 – der Kategorie mit der ID 1 – included_cats=1 – anzeigt.

[aartikel]3937514708:left[/aartikel]Eigentlich doch ganz einfach, oder? Damit sind wir aber leider noch nicht ganz fertig, denn diese zweite Abfrage muss nun noch für jede einzelne andere Kategorie auf die gleiche Weise fortgesetzt werden, damit in jeder Kategorie etc. die entsprechenden kategoriebezogenen Blogartikel ausgegeben werden. Für meine derzeit 8 Kategorien habe ich diese Abfrage also noch 7-mal wiederholt und jeweils die ID der entsprechenden Kategorie ersetzt (in der PHP Abfrage sowie in den Popular Posts).

Ich muss zugeben das ist etwas aufwendig alles für jede Kategorie einzeln abzufragen und geht wahrscheinlich auch einfacher beziehungsweise kürzer. Dazu fehlen mir aber leider die entsprechenden Programmier-Kenntnisse. Falls jemand von Euch diesbezüglich Vorschläge hat, nur rüber damit. Schau ich mir gerne an und probiere es aus.

Artikel vom: