WordPress Header-Image abhängig von Uhrzeit

Wie schon in einem früheren Artikel beschrieben, ist es (zumindest im Kubrick-Theme) relativ einfach möglich, das Header-Bild mit Hilfe von ein bissel PHP-Scripting dynamischer zu gestalten - in meinem Fall wird derzeit z.B. zufällig zwischem dem deutschen und dem englischen Slogan gewechselt 😉 .

Nun kam bei jemandem die Idee auf, das Header-Bild in Abhängigkeit von der Uhrzeit zu wechseln - eine schöne kleine Fingerübung, wie ich fand 😀 . Deswegen habe ich schnell etwas zusammen-geschrieben - ist wirklich nicht viel, nur ein assoziatives Array in Verbindung mit der date()-Funktion von PHP:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
  $headerimg = "./kubrickheader.jpg"; // default header image

  // defines which header image is to be shown at which hour
  // REPLACE GIVEN IMAGE PATHS WITH YOUR IMAGE PATHS
  $headerarray = array("00" => "./headerimg00.jpg",
                       "01" => "./headerimg01.jpg",
                       "02" => "./headerimg02.jpg",
                       "03" => "./headerimg03.jpg",
                       "04" => "./headerimg04.jpg",
                       "05" => "./headerimg05.jpg",
                       "06" => "./headerimg06.jpg",
                       "07" => "./headerimg07.jpg",
                       "08" => "./headerimg08.jpg",
                       "09" => "./headerimg09.jpg",
                       "10" => "./headerimg10.jpg",
                       "11" => "./headerimg11.jpg",
                       "12" => "./headerimg12.jpg",
                       "13" => "./headerimg13.jpg",
                       "14" => "./headerimg14.jpg",
                       "15" => "./headerimg15.jpg",
                       "16" => "./headerimg16.jpg",
                       "17" => "./headerimg17.jpg",
                       "18" => "./headerimg18.jpg",
                       "19" => "./headerimg19.jpg",
                       "20" => "./headerimg20.jpg",
                       "21" => "./headerimg21.jpg",
                       "22" => "./headerimg22.jpg",
                       "23" => "./headerimg23.jpg");

  $currentHour = date("H"); // return hour with leading zero

  // if file does not exist: keep default header image
  if (file_exists($headerarray[$currentHour]))
  {
    $headerimg = $headerarray[$currentHour];
  }

  // write header
  header("Location: " . $headerimg);
  header("Content-Type: image/jpeg");

Der Quelltext ist so einzubinden, wie auch schon im verlinkten Artikel beschrieben - durch das kleine Script kann man bestimmen, in welcher Stunde welches Bild angezeigt werden soll. Mit ein bissel Arbeit kann man das ganze natürlich auch granularer gestalten - bis hin zur Definition von Feiertagen, etc.

Für den Anfang sollte es jedenfalls reichen 🙂 .

Und nicht vergessen: Ich hafte nicht für Schäden an Software, Hardware oder für Vermögensschäden, die durch Anwendung dieser Änderungen entstanden sind oder entstehen könnten. 😉

Update:
Leider muss ich eine kleine Korrektur weitergeben: das ganze muss natürlich date("H"); heißen und nicht date("G"); - zweiteres gibt die Stunde nämlich ohne führende Null zurück 😀 !
Stündliche Grüße, Kenny

5 Kommentare » Schreibe einen Kommentar

  1. Pingback: Random Header Image für Wordpress | http://yks.org/

  2. Meiner Meinung viel zu kompliziert. Viel zu viel Schreibaufwand; und dafür nen Array zu nehmen ist auch mehr als umständlich.

    Da du eh auf existierndes Bild hin prüfst, wieso prüfst du nicht gleich:

    $timedHeaderImage = './headerimg'.date("H").'.jpg';

    if (file_exists($timedHeaderImage)
    {
    $headerimg = $timedHeaderImage;
    }

    • Danke für den konstruktiven Kommentar - ist mit deiner Variante in der Tat wesentlich kürzer 😀 !
      Setzt jedoch voraus, dass man für jede Stunde wirklich ein Bild auf dem Server liegen hat 😉 .

    • Ja klar! Gestern Nachmittag hat es mit dem G funktioniert - da war die Stundenzahl ja auch zweistellig - als ich heute Nacht um 2 zu Besuch war, wurde halt der blaue Himmel angezeigt 😉 .

Schreibe einen Kommentar

Um Ihnen beim weiteren Kommentieren auf dieser Webseite die erneute Eingabe Ihrer Daten zu ersparen, wird beim Absenden Ihres Kommentars ein Cookie an Ihren Browser gesendet und von diesem gespeichert. Mit dem Absenden eines Kommentars auf dieser Webseite stimmen Sie der Speicherung und Übertragung dieses Cookies explizit zu.

Pflichtfelder sind mit * markiert.