Tagszeitabhängiges Layout (php-Frage)

  • Hallo,

    ich habe in meinem Blog eine dunkelblaue Hintergrundgrafik. Die kommt nachts auch ganz gut rüber. Ich fände es aber witzig, wenn der Blog tagsüber mit einer anderen Farbe daherkommt.

    Jetzt bin ich leider kein php-Spezialist. Weiß jemand, ob und wie man so etwas in das Theme einbauen kann.

    IF (Tageszeit > 6 Uhr) UND (Tageszeit < 22 Uhr)
    verwende Tageshintergrund.jpg
    ELSE
    verwende Nachhintergrund.jpg

    Danke und Gruß
    Bernie

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Ganz grob ginge es so (ungetestet):

    In der style.css den Seitenhintergrund auskommentieren.

    In der header.php dann je nach Uhrzeit im <HEAD>-Bereich eine neue Styleangabe je nach Uhrzeit definieren:

  • So, hab's eingebaut.

    Bei meinem Theme musste das in die functions.php und sieht so aus:

    PHP
    $stunde=date('H');
            if ($stunde>=6 AND $stunde<=22) { // größer gleich 6 und kleiner gleich 22
            ?>
            $var_sBackgroundImage = 'background-image:url("' . get_template_directory_uri() . '/images/backgrounds/backgroundt.jpg"); ';
            <? 
            elseif ($stunde<6 OR $stunde>22) { // kleiner 6 ODER größer 22
            ?>
            $var_sBackgroundImage = 'background-image:url("' . get_template_directory_uri() . '/images/backgrounds/background.jpg"); ';

    Danke und Gruß
    Bernie

  • Sorry, ich hab das falsche Codeschnipsel oben reinkopiert.
    So ist es richtig und funktioniert. (Ausschnitt aus der functions.php)

    PHP
    //Tageszeitabhängiger Hintergrund: Zwischen 6 Uhr und 22 Uhr backgroundt.jpg, ansonsten background.jpg.
            $stunde=date('H');
            if ($stunde>=6 AND $stunde<=22)  // größer gleich 6 und kleiner gleich 22
             $var_sBackgroundImage = 'background-image:url("' . get_template_directory_uri() . '/images/backgrounds/backgroundt.jpg"); ';   
            else  
             $var_sBackgroundImage = 'background-image:url("' . get_template_directory_uri() . '/images/backgrounds/background.jpg"); ';

    falls es mal jemand braucht...
    Bernie

  • Hab ich jetzt nicht versucht aber warum sollte das nicht funktionieren.
    Man sucht sich die Stelle, an der die Headergrafik gesetzt wird und baut sich die gleicht if-Schleife aussen rum. Also ungefähr so:

    PHP
    if(!defined('HEADER_IMAGE')) {
        $stunde=date('H');
        if ($stunde>=6 AND $stunde<=22)  // größer gleich 6 und kleiner gleich 22
            define('HEADER_IMAGE', '%s/images/headers/einBild.jpg'); 
        else  
            define('HEADER_IMAGE', '%s/images/headers/einAnderesBild.jpg'); 
    
    
        }

    Aber keine Ahnung, ob das syntaktisch korrekt ist.
    Noch etwas: Die Funktion date('H') liefer UTC zurück und keine Mitteleuropäische Sommerzeit!
    Viel Spaß beim Basteln

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!