Es ist eine schöne Sache, wenn man den aktuellen Artikel im Weblog besonders kennzeichnet. Es ist nicht unbedingt notwendig, aber ich finde es recht schön und habe mir ein wenig Gedanken darüber gemacht, wie man dies mit WordPress lösen kann.
Plugins
Nun gibt es auch dafür Plugins, z.B. kann man mit Updated Today Plugin ein Bild auf der Hauptseite darstellen, dabei wird verglichen, ob das heutige Datum mit dem Datum des Beitrags übereinstimmt.
Aber wozu ein Plugin, wenn man das ganze viel einfacher und vorallem viel besser anpassbar, in das Theme einbauen kann.
Alex King bietet ein Plugin - WP Since Last Visit, welches noch ein wenig weiter geht und mit Hilfe von Cookies abfragt, welche Beiträge der Besucher der Website noch nicht gesehen hat und markiert die dann mit einem Icon.
Wie gehts?
Um das ganze auf der Startseite zu sehen, insofern dort die aktuellen Posts dargestellt werden, muss die index.php des verwendeten Themes bearbeitet werden.
Einige Erläuterungen zum Code habe ich hinter die Anweisungen geschrieben und der Code ist ein wenig aufgeblasen erstellt, damit sich die Hintergründe besser verstehen lassen. Für die PHP-Kenner kann noch einiges zusammen gefasst werden.
Im Beispielfall wird ein Bild für den aktuellen Beitrag, der das gleiche Herausgeberdatum haben muss, wie es aktuell ist, erstellt. In der zweiten Abfrage gehe ich über einen gewissen Zeitraum, im diesem Fall die letzten 5 Tage (-5), und erstelle ein anderes Bild. Soll in der Zukunft gerechnet werden, so muss ein positiver Wert vergeben werden.
Der Code muss dort eingebracht werden, wo später die Ausgabe erscheinen soll, zum Beispiel über der Überschrift des Beitrags - h2.
Das Bild wird jeweils mit der Klasse fb_newpost formatiert, dazu einfach das Stylesheet bearbeiten.
<?php
global $wpdb;
$fb_date_sql = current_time('mysql'); //date today
$fb_date_today = substr($fb_date_sql, 0, 10); //string 0-10 if date today
$fb_postdate = mysql2date('Y-m-d', $post->post_date); // date of post
$my_time = strtotime($fb_date_today); //converts date string to UNIX timestamp
$timestamp = $my_time + (-5 * 86400); //calculates # of days passed ($num_days) * # seconds in a day (86400)
$return_date = date("Y-m-d", $timestamp); //puts the UNIX timestamp back into string format);
if ($fb_postdate == $fb_date_today) { ?>
;?/>/wp-content/themes/new/images/neugross.gif)
<?php }
if ($fb_postdate > $return_date) { ?>
;?/>/wp-content/themes/new/images/neuklein.gif)
<?php } ?>
Anmerkung
Normalerweise kann man bei WordPress das Datum des Beitrags mit dem Template-Tag the_date auslesen. Leider hatte ich Problem, wenn es mehrere Posts an einem Tag gab, dann wurde das Datum nur im letzten Beitrag ausgelesen. Mit the_time kann man die Ausgabe nicht unterbinden, so dass ich mich für die sql-Abfrage entschieden habe.
$fb_postdate = the_date('Y-m-d', '', '', False); // Tag
$fb_postdate = mysql2date('Y-m-d', $post->post_date); // sql