Hinweis auf das Alter eines Artikels

Der Artikel besteht aus 504 Wörtern. Geschätzte Lesezeit: 02:00 Minuten

wordpress-Bildschirm

Seit Tagen sitze ich ja an dem Vorhaben, auf der Startseite einen zufällig ausgewählten Artikel anzeigen zu lassen, der älter ist als x Tage. Damit stehe ich kurz vor dem Kollaps.

Aber ich habe heute doch auch tatsächlich noch einen Erfolg zu vermelden.

Nachdem ich mich ja schon in diesem Artikel gefreut habe, verkünden zu können, jetzt mit der Angabe der Tage und Monate auf das Alter eines Artikels hinweisen zu können, habe ich jetzt das dort genannte Plugin rauswerfen können.

Ab sofort zeigt nur reiner Code das genaue Alter an. Den Code dafür habe ich mir allerdings bei dem Plugin entliehen.

Und der sieht jetzt wie folgt aus:

In der functions.php stehen folgende Zeilen Code

1
2
3
4
5
6
7
8
9
10
function gunbul($time1,$time2,$brake){
 
list ($d2, $m2, $y2) = explode ($brake, $time2);
 
$time1 = get_the_time('U');
$time2 = mktime(0, 0, 0, $m2, $d2, $y2);
 
$last = ($time1 > $time2) ? ($time1 - $time2) : ($time2 - $time1);
return $last;
}

Da ich in php nicht sehr firm bin nur so viel:

Die Variable time1 holt sich das aktuelle Datum. Die Variable time2 stellt die arrays - also die Felder für den Tag, den Monat und das Jahr respektive deren Mehrzahl zur Verfügung

Mit den Befehlen hinter der Variablen last wird - soweit ich es weiß - immer dafür gesorgt, das der Wert der Variablen time1 immer größer ist als die der Variable time2.

Sollte das falsch sein, korrigiert mich bitte.

Dieser wird in der single.php wie fogt aufgerufen und verwandt:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php 
if (time() - strtotime($post->post_date) > (60 * 24 * 60 * 60)){
		$last = alter(get_the_time("j/m/Y"),date("j/m/Y"),'/');
		$day = (date("d",$last) - 1);
		$month = date("m",$last) -1;
		$year = date("Y",$last) - 1970;?>
                <div class="box3"><?php
		if($day == 0)
		$day = "";
		else
			$day = sprintf(__ngettext(" %d Tag", " %d Tage", $day, 'oldpost'), $day);
		if($year == 0)
			$year = "";
		else
			$year = sprintf(__ngettext(" %d Jahr,", " %d Jahre,", $year, 'oldpost'), $year);
		if($month == 0)
			$month = "";
		else
			$month = sprintf(__ngettext(" %d Monat und", " %d Monate und", $month, 'oldpost'), $month);
		?>Dieser Artikel ist <strong><u><?php echo($year); ?> <?php echo($month); ?>  <?php echo($day); ?></u></strong> alt.<br /> Sein Inhalt kann daher in Teilen oder zur G&auml;nze nicht mehr zutreffend sein.<br />
		Falls Du aktuellere Informationen zum hier behandelten Thema suchst, nutze bitte die Suchfunktion des Blogs. Evtl. ist ein aktuellerer Artikel vorhanden.</div><?php
		}  ?>

Zu diesem Code kann ich aufgrund meines bescheidenen Wissens folgendes sagen:

Die zweite Zeile prüft, ob der Zeitraum zwischen dem heutigen Datum und dem Datum, an dem der anzuzeigende Artikel veröffentlicht wurde, größer als 60 Tage ist. In den folgenden Zeilen werden die entsprechenden Parameter festgelegt.

Das DIV in Zeile 7 ist der Anfang für den Kasten, in dem der Hinweis dargestellt wird. Er steht jetzt also nicht mehr im Bereich direkt über dem Artikel.

Die Befehle in den Zeilen 8 + 9, 12 + 13 und 16 + 17 sorgen dafür, das wenn eine der Variablen der Wert 0 zugewiesen wurde nichts ausgegeben wird.

Die Zeilen 10, 14 und 18 sorgen für die Ausgabe der Werte, denen der Zustand größer 0 zugewiesen wurde.

Original sehen letztere etwas anders aus. Die Ausgabe im Original sähe wie folgt aus: Dieser Artikel ist 1 Jahr 9 Monate 7 Tage.

Das liest sich - in meinen Augen zumindest - besch...en. Ich habe sie mit der Zeile 19 soweit ergänzt, das sie so aussieht: Dieser Artikel ist 1 Jahr, 9 Monate und 7 Tage alt.

Für mich liest sich das irgendwie angenehmer. Bestaunen könnt ihr das zum Beispiel in diesem Artikel.

Ich hoffe, ich habe es - was den Code angeht - soweit einigermaßen korrekt und was den Rest angeht verständlich erklärt.

Über Marcus 702 Artikel
Ich freue mich über Deinen Besuch auf meinem Blog!Wenn Dir der Artikel gefallen hat, teile ihn doch mit anderen und hinterlasse Deine Meinung.Mehr über mich gibt es hier zu lesen

6 Kommentare

  1. klappt prima, danke, hab es mir mal eingebaut. Interpretiere ich das richtig, dass
    > (60 * 24 * 60 * 60)
    bedeutet, dass alle Artikel, die 60 Tage x 24h x 60min x 60sec
    als „alt“ markiert werden oder ab „wann“ werden sie als „alt“ deklariert?

    Apropos: hast du die Funktion gar nicht mehr drin bei dir? Der Artikel hier ist ja von 2011?

Kommentar hinterlassen

E-Mail Adresse wird nicht veröffentlicht.


*


CommentLuv - verlinke einen deiner Blog-Artikel