• In meiner functions.php bestimme ich über customize_register einige Farben für das Theme. Diese lassen sich dann für das css mit get_theme_mod() auslesen.

    Meine Frage: Wie kann ich get_theme_mod() aus der functions.php in eine style.xxx packen? Vorstellen könnte ich mir eine style.php, die ich dann irgendwie heran ziehe.

    Probiert hab ich es schon wie folgt:
    in der header.php ein Aufruf der style.php

    HTML
    <link rel="stylesheet" href="<?php bloginfo('stylesheet_directory'); ?>/style.php" />

    in der style.php

    PHP
    <?php
    header("Content-type: text/css");
    
    
    $body_color = get_theme_mod('body_background_color');
    ?>
    body {background-color: <?php echo $body_color ?>;}

    Leider zieht die style.php nicht die get_theme_mod() Color aus der functions.php.

    [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]

    • 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

  • Keiner eine Idee, wie ich PHP Befehle in eine style.xxx bekomme?

    [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]

  • Danke, aber genauso hatte ich es ja schon versucht. Oder bin ich jetzt schon Betriebsblind :-(

    [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]

  • body { color: <?=$color?> }

    Die Variable muss doch übergeben werden,
    da weiß ich nicht wie die functions.php ausgeführt wird.
    Vor der style.php?
    Kannst du die Funktion in die style.php legen?

  • Ich hatte überlegt folgende Variable zu bestimmen:

    PHP
    $body_color = get_theme_mod('body_background_color');


    Und anschließend dann

    PHP
    body {background-color: <?php echo $body_color ?>;}


    Leider übernimmt die style.php nicht die get_theme_mod Farbe.

    Die Farbe kommt aus der functions.php und wird wie folgt bestimmt:

    Hast du eine Idee, wie ich die functions.php mit der style.php verbinde? Also entweder die Funktion in der functions.php lassen und irgendwie an die style.php übergeben ...
    oder die Funktion mit in die style.php schreiben und irgendwie dort zum laufen bringen.

    Folgendes funktioniert auch nicht (falls du es so dachtest), denn dann fehlt schon die Backend-Einstellung für die Farbe:

    header.php

    PHP
    <link rel="stylesheet" href="<?php bloginfo('stylesheet_directory'); ?>/style.php" />


    style.php

    [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]

  • Die Funktion bringt eine Body-Background-Farbe in die Customize-Einstellungen des Themes (Theme -> Anpassen -> Farben).

    [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]

  • Habe ich jetzt entdeckt, nachdem ich mal ein älteres Theme verwende.
    Es ist mir aber noch nicht gelungen, dass das Theme statt style.css die style.php annimmt.
    Ich bleib mal dran.

  • Schon mal ein großes Dankeschön! Ich bin auch weiterhin am Thema. Vielleicht finden wir doch noch irgendwann die Lösung.

    [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]

  • das funktioniert in meinem lokalen test-blog:

    style.php

    PHP
    <?php header("Content-type: text/css");
    require('../../../wp-load.php'); // Include Wordpress 
    $body_color = get_theme_mod('body_background_color');  
    ?>
    body { background-color: <?php echo $body_color; ?>; }
  • oh ja, das funktioniert tatsächlich.
    Einziges Manko ... die Vorschau unter /wp-admin/customize.php funktioniert jetzt nicht mehr. Dazu auch noch eine Idee?
    Muss ich evtl. die style.php über die functions.php noch irgendwo einhaken? Vielleicht über add_action in den wp_head, wobei dann vermutlich die Styles im Quelltext im head-Bereich auftauchen.

    [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]

  • Also ich habs:
    in der index.php den bodytag erweitert und es funktioniert ohne style.php: in der Vorschau und im frontend.

    PHP
    <body style="background-color: <?php echo get_theme_mod('body_background_color'); ?>">
  • ja, aber dann steht's wieder im Quelltext ... wollte ich eigentlich mit einer extra style.php vermeiden.
    Denn sonst könnte ich mich auch mit einer Funktion in den wp_head einhaken:

    PHP
    <?php function bubbles_customize_css() { ?>
      <style type="text/css">
        body{background-color:<?php echo get_theme_mod('body_background_color'); ?>;}
      </style>
    <?php }
    add_action( 'wp_head', 'bubbles_customize_css');


    Dann würde auch die Vorschau funktionieren ... nur steht es dann lesbar im Quelltext.

    [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]

  • okay, ich glaube jetzt habe ich es hinbekommen!

    Als erstes noch mal mein Code in der functions.php, wo ich eigene Farben in die colors-Section von WP integriere:


    Mit alchymyth Code habe ich dann die style.php bestückt. Damit funktionierten dann schon mal die CSS Werte aus der style.php:

    PHP
    <?php
    header("Content-type: text/css");
    require('../../../wp-load.php'); // Include Wordpress 
    ?>
    body{background-color:<?php echo get_theme_mod('body_background_color'); ?>;}

    Für die Preview musste ich dann noch ein Javascript (theme-customizer.js) anlegen:

    PHP
    ( function( $ ) {
    	wp.customize( 'body_background_color', function( value ) {
    		value.bind( function( newval ) {
    			$('body').css('background-color', newval );
    		} );
    	} );
    } )( jQuery );

    welches ich dann über die functions.php eingebunden habe:

    PHP
    function bubbles_customizer_live_preview() {
    	wp_enqueue_script( 
    		  'mytheme-themecustomizer',
    		  get_template_directory_uri() . '/js/theme-customizer.js',
    		  array( 'jquery','customize-preview' ),
    		  '',
    		  true
    	);
    }
    add_action( 'customize_preview_init', 'bubbles_customizer_live_preview' );

    Das ganze hab ich mir mal aus dem codex zusammen gesammelt: http://codex.wordpress.org/Theme_Customiz…_.28Optional.29

    Und noch mal danke an Alle!

    [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]

Jetzt mitmachen!

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