Artikelupdates in der Sidebar

Besucher auf aktualisierte Artikel hinweisen


Der Artikel besteht aus 1666 Wörtern. Geschätzte Lesezeit: 06:39 Minuten

wordpress-Bildschirm

Folgendes Szenario kennt wohl jeder, der einen Blog betreibt:

Man schreibt über irgendeinen laufenden Vorgang einen Artikel. Irgendwann in den dann folgenden Tagen, Wochen oder sogar nur Monaten tut sich etwas in dem beschriebenen Vorgang, was den Besucher interessieren könnte oder was man ihm unbedingt mitteilen möchte.

Da stellt sich dann die Frage, was tut man nun, um zu erreichen das der Leser auch über den neuen Sachstand in Kenntnis gesetzt wird?

Da gibt es zumindest 3 verschiedene Möglichkeiten!

Einen neuen Artikel schreiben

Vielleicht die einfachste aber nicht unbedingt auch die beste Variante ist es, das man mit Verweis auf den ersten Artikel, in welchem man die (damalige / bisherige) Sachlage schon ausführlich geschildert hat, einen neuen Artikel schreibt.

Warum es - aus meiner Sicht - nicht unbedingt die beste Variante ist?

Das hat mehrere Gründe:

Beim schreiben eines neuen Artikels zu einer / einem schon anderweitig beschriebenen Sachlage / Vorgang steckt man irgendwie in einer Zwickmühle. Zum einen will man den Leser, der den Ausgangsartikel schon gelesen hat, ja in den seltensten Fällen nicht nochmal mit der komplett zu beschreibenden Sachlage konfrontieren. Er weiß dann vermutlich ja schon, um was es sich gehandelt hat.

Zum anderen hat ein Blog ja auch immer mal wieder neue Leser. Und das ist meiner Ansicht nach die Zwickmühle:

Denn man will ja in der Regel, das auch diese Neulinge immer auf dem jeweils aktuellen Stand sind. Das aber kann man nur über zwei Wege erreichen

a.) in dem man entweder die ganze Sachlage / den ganzen Vorgang nochmal in aller Ausführlichkeit schildert, oder

b.) den ersten Artikel nur verlinkt

Punkt a.) würde die Alten Hasen auf dem Blog wohl tierisch nerven und eventuell sogar vergraulen. Kennen sie - aller Voraussicht nach - ja schließlich den Sachstand und wissen somit um was es geht. Die zweite Variante würde die neuen Leser vielleicht ganz schnell wieder vergraulen, weil viele von uns ja durchaus so etwas wie 'Klickfaul' sind. Wer springt schon gerne zwischen zwei oder sogar mehreren Artikeln hin und her, wenn man zu jedem neuen Sachstand einen Artikel verfasst und sich ein Vorgang ellenlang hinzieht?

Desweiteren wäre ein solcher Artikel vielleicht auch zu kurz, um von den SuMa entsprechend gewürdigt zu werden. Nicht zu vergessen:  'SEO',  das Lieblingswort der Blogger.

Einen neuen Artikel zu schreiben lohnt sich in meinen Augen erst, wenn die neue Sachlage, bzw. die Begleitumstände die dazu führten, dermaßen umfangreich sind, das eine Aktualisierung des Ausgangsartikels den Rahmen sprengen würde.

Hinweis im Artikel und der Artikelübersicht

Eine zweite Möglichkeit wäre ein Bordmittel, das WordPress von Haus aus mitbringt: der Modified-Tag

Mit ihm ist es möglich, in der Artikelübersicht und natürlich auch im Artikel selbst einen Hinweis anzubringen, der den werten Besucher darauf aufmerksam macht, das ein bestimmter Artikel eine Überarbeitung erfahren hat.

Das ist eine Variante, die ich schon für besser als den unter 1. beschriebenen Weg halte. Aber auch noch nicht so wirklich für das Gelbe vom Ei erachte.

Auch das hat seine Gründe!

Beim Hinweis in der Artikelübersicht:

Weist man - so wie ich es auch mache - in der Artikelübersicht beim betreffenden Artikel auf den Umstand hin, das es eine Aktualisierung gegeben hat, wird dieser - je nachdem wie viele Artikel man auf der ersten Seite anzeigen lässt und wie viele Artikel man in der Regel schreibt - schnell ein Opfer der einem Blog innewohnenden Eigenschaft, das ältere Artikel immer weiter nach hinten rutschen, bis sie zuletzt in den Weiten des Blogs verschwinden und seltenst jemals wieder ans Licht geholt werden.

Hinweis im Artikel selbst:

Wählt man (nur) die Variante, im Artikel selbst auf den Umstand der Aktualisierung hinzuweisen, verpassen viele Leser die entsprechenden Neuheiten. Denn warum soll man einen Artikel mehrfach lesen, vor allem wenn er vielleicht schon 1 oder zwei Monate alt ist?

Das ist für viele Zeitverschwendung und daher tun sie es sich nicht an!

Und weil beide Varianten in meinen Augen nicht unbedingt in jedem Fall der wahre Jakob sind, habe ich mich hingesetzt und einen Code gebastelt, der in der Sidebar darauf aufmerksam macht, das Artikel ein Update erfahren hat.

Ich weiß jetzt nicht, ob es hierzu schon anderweitig einen Code gibt, oder gar ein Plugin existiert, da ich nicht danach gesucht habe.

Hinweis auf Aktualisierung in der Sidebar

Mit dem folgenden Code kann man in der Sidebar seines Blogs darauf hinweisen, das und wenn ein Artikel ein Update erfahren hat.

Dazu muss man - logischerweise - in zwei Dateien seines Themes etwas hinzufügen: Zum einen in der functions.php, zum anderen in der sidebar.php.

Ich zeige Euch jetzt erst einmal den Code der jeweiligen Datei, und versuche dann zu erklären, was die einzelnen Zeilen bewirken:

Code der functions.php

function updated_article() {
	global $wpdb;
	$upd_query = "SELECT post_date, post_status, post_type, post_modified, DATE_FORMAT(post_modified, '%d.%m.%Y, um %H:%i:%s') AS post_modified_ger, post_title AS posttitle, post_name AS postname, guid AS postid FROM $wpdb->posts
		WHERE post_status = 'publish'
		AND post_type= 'post'
		AND post_modified >= post_date + INTERVAL 5 DAY
		AND post_modified >= CURDATE() - INTERVAL 2 MONTH		
		ORDER BY post_modified DESC
		LIMIT 3";	
	$upd_result = $wpdb->get_results($upd_query);
	if ( empty($upd_result) ) {
	echo '... keine aktualisierten Artikel';
	}
	foreach ($upd_result as $updat) :
		$post_modified_ger = $updat->post_modified_ger;
		$posttitle = $updat->posttitle;
		$postname = $updat->postname; 
		$postid = $updat->postid;
	echo '
    '; echo '
  1. Aktualisiert am: '.$updat->post_modified_ger.'
  2. '; echo '
'; endforeach; }

Zeile 1 erklärt sich glaube ich von allein, ebenso wie Zeile 2.

In letzterer wird die globale WordPress-Datenbank als diejenige festgelegt, die im folgenden angesprochen wird und aus der die entsprechenden Daten geholt werden sollen.

In Zeile 3 startet die Abfrage und wird festgelegt, welche Spalten(n) der Datenbank die entsprechenden Daten enthalten, die benötigt werden und welche Tabelle der Datenbank diese enthält. In diesem Fall ist es die Tabelle posts Zeile 4, 5 und 6 legen fest, welche Bedingungen die einzelnen Inhalte der Spalten erfüllen müssen, um ausgewählt und später angezeigt zu werden.

Die Bedingungen sind:

Zeile 4: Der Post muss veröffentlicht sein, also der post_status muss auf 'publish' stehen.

Zeile 5: Die Art des veröffentlichten muss ein Post  / Artikel sein. Es wäre auch möglich 'page' - also Seiten zu wählen. Das macht aber wohl in den seltensten Fällen wirklich Sinn. Läßt man diese Abfrage komplett raus, werden sowohl aktualisierte Posts wie auch entsprechende Artikel angezeigt.

Zeile 6 legt fest, das das Modifizierungs-Datum 5 Tage größer sein muss als das Veröffentlichungsdatum. Man kann natürlich auch Wochen oder Monate festlegen.

Zeile 7 ist nicht unbedingt notwendig. Macht aber im Zusammenhang mit den zeilen 11 und 12 durchaus Sinn. Denn es kann ja durchaus sein, das man im Dezember nicht mehr die Aktualisierung eines Artikel anzeigen lassen möchte, die bereits im Februar des gleichen Jahres erfolgt ist. In diesem Fallle heißt die Zeile übersetzt, das nur Artikel angezeigt werden dürfen, deren Modifizierungsdatum maximal 3 Monate - vom heutigen Datum aus gesehen - zurückliegt.

Zeile 8 sortiert die Ausgabe nach absteigendem Datum. Also der zuletzt Aktualisierte Artikel wird zuerst angezeigt.

Zeile 9 Limit legt die Anzahl der zu zeigenden Artikel fest. Bei dieser Konstellation sollen jeweils nur die 3 zuletzt einem Update unterzogenen Artikel angezeigt werden.

Zeile 10 übergibt die aufgrund der Abfrage in den zeilen 3 - 7  angefallenen Daten an die Variable upd_result.

Zeile 11 bis 13 legen fest, was passiert, wenn die Abfrage ergibt, das keine aktualisierten Artikel vorhanden sind, weil die letzte Aktualisierung eines Artikels den in Zeile 7 festgelegten Zeitraum überschreitet. In diesem Fall soll die Ausgabe 'keine aktualisierten Artikel' ausgegeben werden.

Mit Zeile 14 beginnt eine Schleife, die bis zur Zeile 20 reicht. In Zeile 14 selbst wird festgelegt, das das in Zeile 10 in der Variablen upd_result gespeicherte Ergebnis jetzt an die Variable updat übergeben wird, bzw. diese Variable mit der ersten gleichzusetzen ist.

Die Zeilen 15 bis 18 legen weitere Variable fest und legen die Werte fest, die ihnen zugewiesen werden.

Zeile 19 schließlich legt fest, wie die Ausgabe später in der sidebar.php aussehen soll. Der Befehl rechts des Gleichheitszeichens des Befehls 'li style' sorgt dafür, das weder ein Punkt noch ein sonstiges Zeichen dem jeweiligen Listen-Element vorangesetzt wird.

Zeile 20 schließt respektive beendet die Schleife

Der Code der sidebar.php:

In die Sidebar.php muss zur Ausgabe der folgende Code eingebaut werden:

Zuletzt aktualisierte Artikel: