CSS + benutzerdefinierte Felder

    • 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

  • Nein. In der style.css kannst du kein PHP, HTML etc. benutzen!
    Aber sehr wohl im Header des Themes, wo man ja auch Style-Angaben machen kann.

    "Eine gut gestellte Frage ist schon halb beantwortet."

  • OK Danke für die Info !
    Nur damit ich es verstehe ! Warum funktioniert es mit der style.css nicht !
    Wird die irgendwie gefiltert von WP ?


    Das hat nichts mit WP zu tun. In CSS(-Dateien) kann kein Code ausgeführt werden.

    "Eine gut gestellte Frage ist schon halb beantwortet."

  • Das hat nichts mit WP zu tun. In CSS(-Dateien) kann kein Code ausgeführt werden.

    Also in externen eingebundene Css-Datein kann kein code ausgeführt werden oder !?

    Intern ist doch auch Css wenn ich mit:

    PHP
    <style type="text/css">
    #menue {
        background-color: <?php echo get_post_meta($post->ID, 'menuecolor', true); ?>; 
    </style>


    einbinde. Funktioniert es !
    Verstehe ich gerade nicht !?
    Vielleicht kannst du mir das noch kurz erläutern?
    Danke

  • Der WebServer liefert alle physisch Dateien, die nicht *.php oder *.rb sind, aus den Verzeichnissen direkt aus, ohne dass sie jemals ein Interpreter zu Gesicht bekommt. Das gilt für Bilder, Stylesheet und sonstige nicht an Interpreter gebunden Dateien.

    Deshalb kannst du auch kein php Code in einer *.css Datei ausführen lassen, denn diese geht 1:1 durch der WebServer raus.

  • Ich glaube zu wissen, bin mir aber nicht sicher, dass diese Methode auch funktionieren würde:

    HTML
    <link rel="stylesheet" type="text/css" href="style.css.php" />

    Also übliche Einbindung externer Dateien und dann im style(.css).php je nach Gebrauch PHP Code ausgeben.


  • Völliger Käse, das liefert nur eine 404 'Not Found', denn die Datei "[COLOR=Black]style.css.php" gibt es nicht. Und wenn du sie so anlegst, hat sie keinen Zugriff auf die WP Daten.
    Das mit dem Kolorieren von Kategorien etc. löst man in den Template Dateien (index.php / single.php etc.) und nicht im Stylesheet. Im Template gibt man den entsprechenden HTML Tags die entsprechende Klasse oder Id:
    [/COLOR]

    PHP
    $arr = (array)get_the_category($post->ID);

    Dann steht in dem $arr alle Kategorien, zu denen der Artikel gehört, im güstigesten Fall 1ne Kategorie.
    Dann kannst die den HTML Code damit ausstatten:

    PHP
    <div id="post-cat-<?php echo $arr[0]; ?>" class="post-class-<?php echo $arr[0]; ?>">jhfjshfkh</div>

    und im Stylesheet kannst du dann damit was machen:

    Code
    #post-cat-[COLOR=Red][B]auto[/B][/COLOR] { background: transparent url('porsche.img') no-repeat left top; }
    .post-class-[B][COLOR=Red]auto[/COLOR][/B] { text-align: center; }
  • Völliger Käse, das liefert nur eine 404 'Not Found', denn die Datei "[COLOR=Black]style.css.php" gibt es nicht. Und wenn du sie so anlegst, hat sie keinen Zugriff auf die WP Daten.[/COLOR]


    Dass man die externe Datei anlegt, ist wohl Grundvoraussetzung:


    In der externen Datei muss man dann lediglich den Content-type festlegen und kann auch gleich bequem die Meta-Daten in Variablen einschleusen.

    PHP
    <?php
    header('Content-type: text/css');
    $menu_color = get_post_meta($post->ID, 'menuecolor', true);
    ?>.menu {
        color: <?php $menu_color; ?>
    }


    Obwohl ich Deine Methode wesentlich eleganter und angenehmer empfinde! ;) Bleibt nur noch die Frage mit dem Erhalten von Meta-Daten außerhalb des Loops offen:

    http://forum.wordpress-deutschland.org/design/29703-l…rhalb-html.html

    Was sich evtl. mit einem kleinen Plugin lösen könnte:
    WordPress benutzerdefinerte Felder (Custom Fields) - bueltge.de [by:ltge.de]

    MfG ;)


  • PHP
    <?php
    header('Content-type: text/css');
    $menu_color = [COLOR=Red][I][B]get_post_meta($post->ID, 'menuecolor', true);[/B][/I][/COLOR]
    ?>.menu {
        color: <?php $menu_color; ?>
    }


    Genau das geht nicht, denn diese php Datei wird ja direkt und ohne Initialisierung von WP ausgeführt und wird nix als eine Fehlermeldung zurückliefern, daß die Funktion get_post_meta nicht existiert!

    "Außerhalb von der Loop" heißt in dem Artikel vom Frank aber innerhalb eines von WP initialisierten Templates und nicht in einer von System unabhängigen PHP Seite, was dein Ansatz nur mal ist.

Jetzt mitmachen!

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