Wie den body Hintergrund nach Seite ändern?

  • Wie den body-Hintergrund nach Menüauswahl ändern?

    Hallo,

    ich würde gerne den body Hintergrund (in der finalen Version Bilder) je nach gewähltem Menüpunkt ändern. Zur Zeit passe ich das Twenty ten Theme an meine Bedürfnisse an.

    Dazu habe ich schon viel gesucht und leider nichts Brauchbares gefunden.

    Mein Ansatz sieht wie folgt aus. Ich habe zwei css Klassen in der style.css

    PHP
    body.home {
    	background: #220000;
    }
    
    
    body.alternative {
    	background: #225500;
    }

    Und in der header.php will ich über eine if-Abfrage den Zustand home des body backgrounds nur bei Aufruf der Startseite (Habe mir im Backend eine eigene definiert) angezeigt bekommen, sonst den Zustand des alternative.

    PHP
    <body class="<? if (is_home()) {home} else {alternative} ?>" <?php body_class(); ?>>

    Aber es passiert nix?

    Kann mir jemand sagen, was ich ändern muss, um mein Ziel zu erreichen?

    Gruß
    Simon

    Einmal editiert, zuletzt von simon1101 (15. Dezember 2010 um 18:12)

    • 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

  • Erstens ist der Syntax ist total daneben und zweitens macht der wp-body-Tag
    [FONT=Courier New]<?php body_class(); ?>[/FONT] genau das.
    Also wozu die Abfrage ?

    Und wenn, dann so, aber wäre überflüssig: (ungetestet)

    PHP
    <body class="<?php if (is_home()) { echo 'home' } else { echo 'alternative' } ?>" <?php body_class(); ?>>

    "Whoever controls the media, controls the mind." J.Morrison

  • Lösung!

    Alles klar, jetzt habe ich es kapiert. Danke für die Anregung...

    Die css muss heißen:

    PHP
    body {
    	 background: #225500; 
    }
    
    
    body.home {
    	background: #220000;
    }

    Und in der php reicht:

    PHP
    <body <?php body_class(); ?>>
  • Hallo, bin neu hier und bin leider auch nicht wirklich fit in Php!:sad:
    Ich würde gerne für jede Seite eine anderes Hintergrundbild haben, wie könnte ich da vorgehen???

    Geht nichts, gibts nicht.

  • hallo und willkommen im forum :D

    hofffentlich bist du fit in css, da das nicht viel mit php zu tun hat:

    erster schritt:
    bearbeite header.php (das sollte in den meisten faellen die richtige datei sein)
    und stell sicher dass der body tag den code fuer die body_class hat:

    PHP
    <body <?php body_class(); ?>>



    der 'unbearbeitete' body tag sieht so aus:

    Code
    <body>



    ende des php-teils :lol:

    wenn du mit 'seiten' die 'page' meinst, und mit hintergrund den gesamt-hintergrund, also vom browserfenster, dann bearbeite die style.css des themes; fuer jede seite mit einem eigenen hintergrund fuege sowas wie das folgende ein:

    Code
    body.page-id-3 { background-image: url(images/page3bg.jpg); }



    http://www.w3schools.com/css/css_background.asp

    das setzt voraus, dass das hintergrundbild im /images-verzeichnis im verwendeten theme abgespeichert ist.

    die page id kannst du rausfinden, wenn du im 'dashboard' unter 'seiten bearbeiten' mit der maus ueber den titel der entsprechenden seite gehst - die id ist dann unten in der browserzeile hinter [COLOR=green]?post=[/COLOR] zu sehen.

  • Herzlichen Dank!! :razz:

    Ich habe bereits etwas gefunden, auch weiß ich nicht ob es richtig ist, aber es funktioniert:

    header.php:
    <body id="bg-<?php print $post->ID;?>">

    und in der .css:

    #bg-2
    #bg-3
    #bg-4
    usw...

    Geht nichts, gibts nicht.

  • Hallo,

    ich habe folgende Aufgabe:

    Wenn die Minutenanzahl beim Aufruf der Seite gerade ist, verwende die eine Hintergrundfarbe. Bei einer ungeraden Minutenanzahl verwende eine andere Hintergrundfarbe.

    Ich komme hier nicht klar bzw weiß nicht wie ichs schreiben soll...

    Kann mir jemand helfen? :neutral:

    Danke

  • Du musst ja wissen ob gerade oder ungerade...

    Das kannst du mittels php (ohne Cache Plugin) oder mittels JavaScript (mit Cache Plugin) erledigen... Nur mit CSS geht das nicht.

    mfg

  • Ich bin noch ziemlich unerfahren...
    Das habe ich bisher:
    <?php

    $timestamp = time();
    $minute = date("i", $timestamp);
    echo $minute;

    function GeradeUngerade($minute){
    if ($minute % 2 == 0) {
    return 0;
    }else{
    return 1;
    }
    }

    echo GeradeUngerade($minute);

    If($minute == 1) {
    $farbe = '228b22';
    } else {
    $farbe = '00ff00';
    }
    ?>


    <body bgcolor="<?php echo $farbe; ?>">


    im browser wird immer die zweite farbe angezeigt, also die für gerade...
    ich hab gestern den ganzen nachmittag mit dem problem verbracht... :-?

    Einmal editiert, zuletzt von alexFCN (17. November 2015 um 08:49)

Jetzt mitmachen!

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