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
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:
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;?>
Dieser Artikel ist alt.
Sein Inhalt kann daher in Teilen oder zur Gänze nicht mehr zutreffend sein.
Falls Du aktuellere Informationen zum hier behandelten Thema suchst, nutze bitte die Suchfunktion des Blogs. Evtl. ist ein aktuellerer Artikel vorhanden.
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.
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?
Hallo Ina!
Ja, genauso sieht das es. Sobald ein Artikel älter als x Tage ist (Dein Beispiel 60 Tage), wird er entsprechend markiert.
Momentan habe ich es nicht aktiviert.
verstehe, danke, aber warum dann die „24 * 60 * 60“ ?
Naja, Ina, denk mal nach 😉
Der Tag hat doch nicht nur 1 Stunde, oder? Sondern eben 24. Man könnte es natürlich auch abkürzen mit 24 * 365 oder x * 86400
das ist mir schon klar 😉 Mir ging nur nicht ein, warum man nicht einfach „nur“ die Tage codiert – aber das übersteigt meine PHP-Kenntnisse 🙂
Was meinst Du mit ‚Tage codieren‘?