Unterschiedliche Hintergrundbilder für jede Seite

  • Guten Morgen,

    leider habe ich zu meiner Frage nur diesen Thread gefunden, aber der hilft mir nicht so richtig weiter. Ich erstelle gerade eine neue WP-Webseite (v3.9.1) für einen Bekannten. WP soll hier nur als CMS genutzt werden, was bedeutet, dass nur vereinzelte statische Seiten nötig sind, aber keine aktuellen Beiträge gepostet werden. Nun soll jede Seite ein anderes Hintergrundbild erhalten.

    Die Lösung in dem anderen Thread verstehe ich nicht ganz, denn <body> gibt es ja nur einmal. Ordne ich hier ein class-Attribut zu, dann gilt das doch für alle Seiten?

    Als Grundlage nutze ich momentan das Theme "Forever", aber ist ja theoretisch für diese Frage egal. Kann mir jemand weiterhelfen, wo ich was anpassen müsste? Ich vermute, das geht nicht über die Admin-Konsole, sondern ich muss direkt in den Code?

    Vielen Dank schon mal.

    Liebe Grüße
    Susanne

    • 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

  • Wenn Du den Body im body_class() ergänzt, erhält der body pro Seite unterschiedliche Classes, da es dann auf Conditional Tags aufbaut. Hier mal die Doku dazu:
    http://codex.wordpress.org/Function_Reference/body_class

    Teste es einfach mal. So bekommt jede Seite z. B. die pageid-?? im Body zugewiesen, worüber Du Dein Vorhaben realisieren kannst.

    Das Geheimnis des Könnens liegt im Wollen!
    [size=12]Bitte keine Hilfegesuche per PN (auch keine "privaten" Links). Das ist ein öffentliches Forum.[/SIZE]

  • Wenn du die Bildquellen weniger statisch im CSS haben möchtest, könntest du diese auch über benutzerdefinierte Felder im Template abfragen. Dann könntest du bei Bedarf das Hintergrundbild schnell über den wp-admin anpassen und müsstest nich für jede Seite eine neue CSS Regel aufstellen.

  • Hier hänge ich auch.
    Jedoch nicht an der unterschiedlichen Bilder für jede Seite. Das ist kein Problem.

    Das Problem ist, dass ich das Bild auch bei den Unterseiten haben möchte.

    Kurz:
    Für jede Seite UND deren Unterseiten soll ein anderes background-image angezeigt werden.

    Ich habe ziemlich viele Varianten ausprobiert, grad bin ich bei der:

    Erst die is_subpage Funktion aus dem Codex:


    Und dann meine body_classen:

    Das funktioniert.
    Aber sobald ich den anderes Seiten auch noch das

    PHP
    || is_subpage()

    hinzufüge, dann gehen die Bilder auf den Unterseiten nicht mehr.

    Ich hoffe ich konnte das Problem beschreiben.
    Kann mir wer helfen?


    Ich kann leider nur die parent Seiten mit dem Seiten-Name ansprechen.
    Für die childs geht das nicht, da ich die variabel halten muss.

  • (...)WP soll hier nur als CMS genutzt werden, was bedeutet, dass nur vereinzelte statische Seiten nötig sind, aber keine aktuellen Beiträge gepostet werden. Nun soll jede Seite ein anderes Hintergrundbild erhalten.
    (...)

    Nutze einfach ein Plugin wie z.B. dieses

    https://wordpress.org/plugins/fully-background-manager/

    verträgt sich mit den allermeisten WP-Installationen prächtig und ist einfach und intuitiv zu bedienen, weil es sich so wie das Feature für die Beitragsbilder mit einen extra Bedienfeld in die Editorseite für Seiten und Beiträge einfügt.

  • Danke für die Antwort!!!

    Plugin geht leider nicht.
    Ich mache ein spezielles Theme, was mit so wenig Plugins wie möglich funktionieren muss.
    Die Pflege liegt dann auch nicht bei mir.
    Deshalb sollten Dinge, die nicht verändert werden müssen wie die Hintergrundbilder, einfach funktionieren. Ohne zusätzliche Arbeit.


    Hat denn sonst niemand eine Idee, wie ich die Klasse für Seite UND Unterseite hinzufügen kann??

  • (...)
    Ich mache ein spezielles Theme, was mit so wenig Plugins wie möglich funktionieren muss.(...)

    Ist zwar Deine Entscheidung, aber das Plugin ist recht weit verbreitet, erprobt und aktuell, dazu noch fügt es sich nahtlos in die übrigen Funktionen von Wordpress ein, ergänzt genau diese Lücke der nicht einstellbaren Hintregrundbilder fast perfekt.


    Zitat

    Die Pflege liegt dann auch nicht bei mir.

    Eigentlich noch ein Pluspunkt für das Plugin...


    Zitat

    Deshalb sollten Dinge, die nicht verändert werden müssen wie die Hintergrundbilder, einfach funktionieren. Ohne zusätzliche Arbeit.

    Einmal eingestellt, tut das Plugin genau das, was es soll und noch mehr und einmal einstellen muss man alles auch auf Codeebene.


    Zitat

    Hat denn sonst niemand eine Idee (...)

    Schon, aber dann passt Dir die womöglich auch nicht, da schreib ich dann lieber woanders was…

  • Hallo Tubedesigner,

    Zitat

    [COLOR=#3E3E3E]Schon, aber dann passt Dir die womöglich auch nicht, da schreib ich dann lieber woanders was…[/COLOR]

    ich verstehe nicht so recht.
    Ich habe lediglich gesagt, dass ich es ohne Plugin gelöst haben möchte.

    Das heißt nicht, dass mir nicht passt, dass du mir den Tip für das Plugin gibst.
    Leider geht es in diesem Fall aber nicht.
    Ich muss das hier über die function.php lösen.
    Was an sich ja auch kein Problem sein sollte.

    Ich bekomme es grad aber einfach nicht hin und schreibe hier,
    weil ich alleine nicht weiter komme.

    Ich bin um jeden Tip dankbar, auch um deinen Hinweis auf das Plugin.

  • Hey Hille, genial!
    Das ist super.

    Kannst du mir auch sagen, wie ich das für die childs hinbekomme?
    Ich weiß hier die IDs nicht.
    Wenn z.B. die Überseite (parent) die ID 18 hat, dann kann ich ja über CSS die Unterseite nicht ansprechen, oder? Diese hat dann ja wieder eine andere ID die ich nicht weiß. Dann lade ich wieder bei php. Oder gibts da noch eine Möglichkeit? Die Lösung über css finde ich nämlich ganz wunderbar!

    EDIT:
    Okay, ich habs. Zu früh gefragt. Aber noch eine Frage. Jetzt habe ich es gut rein über CSS, aber jetzt fällt mir auf, dass ich ja nie die ID weiß. Auch nicht bei der Überseiten. Der Seite wird keine Klasse zugefügt, die irgendwie aus dem Name oder Slug besteht, oder?

    Einmal editiert, zuletzt von janamaria (17. Januar 2016 um 21:31)

  • (...)
    Ich muss das hier über die function.php lösen.
    (...)

    Musst Du nicht, ganz einfach ohne Plugin in die style.css oder ein Custom-CSS-Feld oder eine eigene CSS-Datei schreiben


    Für Beiträge:


    .[COLOR=#b22222]postid-[/COLOR][COLOR=#0000cd]n[/COLOR][COLOR=#b22222][/COLOR] [COLOR=#006400]{
    background-image: url(www//background.jpg);
    background-repeat: repeat;
    background-position: center top;
    }[/COLOR]


    Für Seiten:


    .[COLOR=#b22222]page-id-[/COLOR][COLOR=#0000cd]n[/COLOR] [COLOR=#006400]{
    background-image: url(www//background.jpg);
    background-repeat: repeat;
    background-position: center top;
    }


    [/COLOR][COLOR=#000000]Achte auf den kleinen Unterschied ([/COLOR][COLOR=#b22222]rot[/COLOR][COLOR=#000000]), [/COLOR][COLOR=#0000cd]n[/COLOR][COLOR=#000000] durch die ID des Beitrages oder der Seite ersetzen, Befehle nach eigenen Wünschen anpassen - fertig.[/COLOR][COLOR=#006400]
    [/COLOR][COLOR=#000000][/COLOR][COLOR=#000000][/COLOR]

  • Hey!

    Danke dir!

    So hatte ich es auch gestern.

    HTML
    .page-id-16, .parent-pageid-16 {

    Aber sobald ich die ID nicht weiß, geht das doch nicht, oder?

    Der Name der Seite ist immer gleich, ID nicht, da bei jeder Theme Installation andere IDs vergeben werden. Aber die Unterseiten unterscheiden sich vom Name her immer. Und von der ID sowieso.

    Mh.

  • Juhu!

    Ich habs.

    functions.php:


    Jetzt wird für jede Seite und deren Unterseiten eine Klasse mit dem Slug der Überseite vergeben.
    Die kann ich jetzt über CSS anpsrechen.


    Vielen lieben Dank an alle! :)

Jetzt mitmachen!

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