Wie kann ich in der header.php die Beitragsseite ansprechen?

  • Hallo erstmal, ich versuche seit gestern, eine Klasse anzusprechen. Allerdings soll die Klasse nur angesprochen werden, wenn es sich um die Beitragsseite handelt.


    Ich habe diesen Codeschnipsel ausprobiert, das funktioniert mit allen meinen Seiten.

    PHP
    <?php if ( !is_page('Kontakt') ) : ?>
    <style type="text/css" media="screen">
    body {
        background-color: green;
        /*width: 100%;*/
    }
    </style>
    <?php endif; ?>


    Wenn ich nun das 'Kontakt' auf 'Blog' (dies ist meine Beitragsseite) ändere, wird der Code nicht ausgeführt. Als würde 'Blog' nicht erkannt werden.

    Nun habe ich zu Testzwecken versucht eine andere Seite als Beitragsseite auszuwählen und bin draufgekommen, das es dann auf eben dieser Seite nicht mehr funktioniert. Das heißt also is_page erkennt die Beitragsseite nicht, sehr wohl aber alle anderen, oder? Ich denke, ich muss das ( is_page('Blog')) anpassen, könnt ihr mir sagen was ich anders machen muss?

    Der Link zur Seite: https://wp-site-blog.lima-city.de/?page_id=55

    Über Hilfe hierzu wäre sehr froh
    Liebe Grüße


    Edit: Ich möchte das gerne ohne Plugin realisieren, einfach aus dem Grund, weil ich mir vorgenommen habe wordpress zu lernen und den Hintergrund dieses Problems verstehen möchte

    Einmal editiert, zuletzt von maariaa (20. November 2016 um 10:34)

    • 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


  • Edit: Ich möchte das gerne ohne Plugin realisieren, einfach aus dem Grund, weil ich mir vorgenommen habe wordpress zu lernen und den Hintergrund dieses Problems verstehen möchte


    Um es grundsätzlich zu verstehen ist das kein schlechter Ansatz, aber für eine Liveseite würde es sich eher empfehlen, mit den vorhandenen CSS-Klassen zu arbeiten. Auch das ist übrigens ein Teil von "Wordpress lernen und verstehen", mit den Klassen umzugehen die bereitgestellt werden. Die Funktion dazu ist diese: https://developer.wordpress.org/reference/functions/body_class/ - wird bei Sydney schön auf "body" angewendet. Das wäre einfach etwas sauberer, als zusätzliche PHP-Abfragen mit reinzubringen.

    Man kann die Realität ignorieren - aber nicht die Folgen der ignorierten Realität.

  • Dankeschön auch dir Nevery. Ich habe mir jetzt auch diese Methode angesehen, hätte aber noch eine Frage dazu. Auf diese Weise weist man dem Body eine Klasse zu, das funktioniert sehr gut. Und ich bin sehr dankbar wenn ich auch darauf hingewiesen werde was best-practice ist.

    Der Hintergrund für meine Frage ist, das ich die Sidebar nur auf der Blogseite anzeigen möchte. Das habe ich (auch wieder mit einer PHP-Abfrage) realisieren können. Den Code von FlorianBrinkmann habe ich mit einem ! umgedreht und dem .content-wrapper ausgenommen auf der Seite Blog eine Breite von 100% gegeben. Soweit - so gut :)

    Nun geht es mir aber generell darum, wie ich mit deinem Tipp umgehen sollte, wenn ich beispielsweise dem Body nur auf der Blogseite eine Klasse zuweisen möchte.

    Meinem Verständnis nach müsste ich dann aber folgende PHP-Abfrage machen.

    PHP
    <?php if ( !is_home() ) { ?>
    <body <?php body_class(); ?>>
    <?php } ?>

    Andernfalls würde ich ja dem Body-Tag auf jeder Seite eine Klasse zuweisen. Somit habe ich aber wieder eine zusätzliche PHP-Abfrage, was ich ja gerne vermeiden möchte.

    Ich bin wirklich sehr neu in Wordpress, darum entschuldigt meine Anfängerfragen. Ich befürchte, das ich da jetzt völlig auf dem Schlauch stehe und etwas übersehe. Ich wäre sehr froh, wenn ihr mir nochmal einen Schubbs in die richtige Richtung geben könnt.

    Liebe Grüße
    maariaa

  • um den Body-Tag kommt keine IF Abfrage. WP ist so schlau und weißt dem Body dann immer die richtige Classe zu.

    Die Homepage bekommt dann z.B. body.home :

    Code
    body.home {background-color: green;}

    Die Class .home bekommt keine andere Seite/kein anderer Post.

    [size=10]Bitte immer zuerst die Forensuche nutzen und erst danach Deine Fragen hier im Forum stellen, denn sehr vieles wurde schon mehrfach beantwortet. Bitte dabei auch die Forenregeln beachten.
    Kein Support per PN - Fragen gehören ins Forum.[/SIZE]
    [size=8]Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Johann Wolfgang von Goethe)[/SIZE]


  • Der Hintergrund für meine Frage ist, das ich die Sidebar nur auf der Blogseite anzeigen möchte. Das habe ich (auch wieder mit einer PHP-Abfrage) realisieren können.


    Du meinst, die Sidebar bei "Beiträgen" usw. anzeigen, aber bei "Seiten" nicht? Dafür verwendet man eigentlich entsprechende Seitentemplates, die garkeine Sidebar einblenden. Du kannst, wenn Du eine Seite erstellst oder bearbeitest, rechts das zu verwendende Seitentemplate auswählen.


    Nun geht es mir aber generell darum, wie ich mit deinem Tipp umgehen sollte, wenn ich beispielsweise dem Body nur auf der Blogseite eine Klasse zuweisen möchte.

    Meinem Verständnis nach müsste ich dann aber folgende PHP-Abfrage machen.

    PHP
    <?php if ( !is_home() ) { ?>
    <body <?php body_class(); ?>>
    <?php } ?>

    Andernfalls würde ich ja dem Body-Tag auf jeder Seite eine Klasse zuweisen. Somit habe ich aber wieder eine zusätzliche PHP-Abfrage, was ich ja gerne vermeiden möchte.


    Die body_class wird - ganz korrekt - immer verwendet, aber was für eine CSS-Klasse dabei rauskommt ist eben verschieden.
    Du brauchst also keine Abfrage, wann Du diese Funktion anwendest, sondern schaust andersherum welche Klasse wann zugewiesen wird (z.B. "blog", "home", "page"...) und wendest darauf entsprechend Styles an.

    Man kann die Realität ignorieren - aber nicht die Folgen der ignorierten Realität.

  • ... also genau umgekehrt, ich hatte da eine verdrehte Denkweise.

    Ich habe das jetzt, mit den von dir erwähnten, Seitentemplates gemacht. Den Tipp mit dem Klassenauslesen werde ich jedoch bestimmt für andere Sachen noch gut gebrauchen können. Danke :)

Jetzt mitmachen!

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