Wenn Leute nach Funktionen gefragt werden, die sie sich für CSS wünschen, kommen immer „Variablen“ zur Sprache. Ob das eine gute Idee ist, darüber bin ich mir persönlich noch nicht im Klaren, aber ich neige eher zum Ja. Unabhängig davon ist es mit PHP trivial einfach, Variablen in CSS zu verwenden. Das ist sicherlich kein neuer Trick, aber ich habe ihn noch nie speziell behandelt, also dachte ich, ich sollte es tun.
Style.php
Anstatt die Dateiendung .css zu verwenden, verwenden Sie .php
<link rel='stylesheet' type='text/css' href='css/style.php' />
Content-Type
Am Anfang Ihrer neuen style.php-Datei setzen Sie den Content-Type wieder auf CSS
<?php
header("Content-type: text/css; charset: UTF-8");
?>
Variablen einrichten
Jetzt können Sie Variablen für alles einrichten, was Sie möchten
<?php
header("Content-type: text/css; charset: UTF-8");
$brandColor = "#990000";
$linkColor = "#555555";
$CDNURL = "http://cdn.blahblah.net";
?>
Variablen verwenden
Unter all dem PHP-Kram können Sie einfach mit dem regulären CSS-Schreiben beginnen, nur dass Sie etwas PHP einmischen können, um diese Variablen auszugeben.
#header {
background: url("<?php echo $CDNURL; ?>/images/header-bg.png") no-repeat;
}
a {
color: <?php echo $linkColor; ?>;
}
...
ul#main-nav li a {
color: <?php echo $linkColor; ?>;
}
Leistung erweitern / Andere Ideen
- Wenn Sie schon dabei sind, können Sie auch gleich das CSS mit PHP komprimieren.
- Theoretisch könnten Sie den User-Agent abrufen und versuchen, browser-spezifisches CSS zu erstellen, aber das ist voller Probleme und nicht empfehlenswert.
- Rufen Sie Datum/Uhrzeit ab und ändern Sie vielleicht einige Dinge auf Ihrer Website für die verschiedenen Jahreszeiten oder Tageszeiten.
- Generieren Sie eine Zufallszahl, testen Sie das Ergebnis, verwenden Sie es, um ein zufälliges Hintergrundbild für Ihren Header festzulegen.
Funktioniert nicht?
Ich habe eine komplett statische Testseite gemacht und es hat gut funktioniert, dann habe ich die gleiche Technik innerhalb einer WordPress-Site ausprobiert und es hat nicht geklappt. Die Lösung für mich war, die Datei mit dem Namen style.css zu belassen und .htaccess zu verwenden, um sie als PHP zu parsen. Stellen Sie einfach sicher, dass dieser Code in der .htaccess-Datei (nur Apache-Server) auf der gleichen Verzeichnisebene wie die CSS-Datei steht. Dann können Sie PHP darin verwenden, wie Sie es von jeder anderen PHP-Datei gewohnt sind.
<FilesMatch "^.*?style.*?$">
SetHandler php5-script
</FilesMatch>
Carlo DeAgazio schrieb, dass dies bei ihm in WordPress funktioniert
<?php
$absolute_path = explode('wp-content', $_SERVER['SCRIPT_FILENAME']);
$wp_load = $absolute_path[0] . 'wp-load.php';
require_once($wp_load);
/**
Do stuff like connect to WP database and grab user set values
*/
header('Content-type: text/css');
header('Cache-control: must-revalidate');
?>
Hallo Chris, ich habe neulich mit dieser Idee gespielt, hatte aber nie Zeit, sie genauer zu untersuchen. Ich habe eine Frage: Was kannst du mir über die Leistung sagen? Ich nehme an, es ist langsamer als ein reines CSS-Stylesheet, aber ist es viel langsamer oder merkt man den Unterschied gar nicht?
Vielen Dank für Ihre Zeit und diesen sehr interessanten Beitrag.
Wirklich interessantes Konzept. Ich könnte mir vorstellen, dass es in einem Unternehmensumfeld, wie dort, wo ich jetzt arbeite, sehr nützlich wäre. Es wäre einfach, Farben/Schriftarten zu ändern, wenn sich das Corporate Branding in eine neue Richtung bewegt.
Sieht wirklich interessant aus, danke Chris. Ich werde es bald selbst ausprobieren!
@Martin
Es gibt keinen Grund, warum es langsamer als reines CSS sein sollte: In dem Moment, in dem das CSS vom Server an den Client geliefert wird, ist es bereits reines CSS.
Vergessen Sie nicht, dass jeder PHP-Code auf dem Server ausgeführt wird, bevor im Browser etwas passiert.
Wenn Ihr Code sehr komplex ist, bemerken Sie vielleicht einen Nachteil bei der Leistung, da es einige Zeit dauern würde, bis der Server das Skript ausführt. Ich sehe jedoch nicht, dass dies bei dieser Art von Methode überhaupt vorkommt.
Meine 2 Cent
Ich bin sicher, es gibt einige Kosten, da der Server ihn verarbeiten und dann liefern muss, anstatt ihn nur zu liefern – aber wir sprechen hier von Mikrosekunden.
Als ich diese Methode verwendete, war sie nicht merklich langsamer als reines CSS.
Vielen Dank für Ihre Antworten, sowohl von O als auch von LineIn. Was Sie geschrieben haben, scheint sehr schlüssig, daher denke ich, es ist nur eine Frage des Ausprobierens!
Es gibt tatsächlich ein Leistungsproblem. Soweit ich weiß, werden diese PHP-geparsten Stylesheets vom Client nicht gecached. Das Stylesheet wird also jedes Mal verarbeitet, wenn es vom Client aufgerufen wird.
Korrigieren Sie mich, wenn ich falsch liege.
Sie könnten wahrscheinlich einen „expires“-Header in PHP setzen, aber ich kenne mich mit HTTP nicht so gut aus. Irgendwelche Ideen?
Tatsächlich müssen Sie das Caching-Problem nicht umgehen. Da Sie im Skript nichts wirklich Dynamisches tun, können Sie einfach Folgendes von der Kommandozeile unter Mac/Linux ausführen
php myStyles.php > myStyles.css
Verlinken Sie dann die gerade generierte CSS-Datei. Sie müssen die CSS-Datei jedes Mal neu kompilieren, wenn Sie sie ändern. Sie ist also nur wirklich nützlich, wenn Sie mit dem Testen fertig sind.
Es gibt einige größere Leistungsprobleme. Sie sollten PHP oder eine Logik auf der Anwendungsebene nicht verwenden, um statische Inhalte zur Laufzeit zu generieren. Ich gehe hier auf alle Leistungsprobleme ein
http://bit.ly/4suKSp
Eine weitere Möglichkeit, dies zu tun, wenn auch nicht sehr effektiv, ist, die Stile direkt in das Dokument einzubetten und PHP die Variablen dort ausgeben zu lassen. Eine nützlichere Variante dieser Methode ist die Anwendung auf JavaScript. Ich habe dies einmal genutzt, als ich ein Element mit JS-generiertem CSS positionieren musste, wenn die Position von der Übermittlung eines PHP-Formulars abhing.
Der größte Grund, warum ich CSS-Variablen verwenden möchte, ist die Klassenvererbung. z. B. für Sprites.
.sprite {
background-url…
text-indent…
}
.header extends .sprite
.header {
background-position…
}
.submit extends .sprite
.submit {
background-position…
}
Was uns davon abhält, Dinge wie
input class=”sprite submit” und das HTML mit Klassennamen zu überladen.
Ich würde es lieben, so etwas mit dieser Methode zu sehen.
Nicole Sullivan geht hier detailliert darauf ein: http://www.stubbornella.org/content/2009/11/09/css-wish-list/
Sie sollten sich die GitHub-Projektseite von oocss ansehen (http://github.com/stubbornella/oocss).
dort finden Sie viel objektorientierten CSS-Code, der so verwendet werden kann „input class=“sprite submit“ “.
Jeder weiß, dass dies nicht die beste Methode ist, aber es ist tatsächlich ein Konzept, das seinen Weg in die CSS-Spezifikationen finden sollte.
Natürlich ist das Projekt offen für jede Art von Beiträgen (Ideen, Kommentare, Code, …).
Nun, es gibt ein „Object Oriented CSS“, aber ich bin mir nicht sicher, ob es Vererbung zulässt. (obwohl ich glaube, dass es das sollte.) Muss es studieren. Verdammt, diese Technologien entwickeln sich sehr schnell… Kaum hatte ich CSS 2.0 gelernt, kamen schon neue Versionen von CSS, nämlich CSS 3.0 und Object Oriented CSS, auf den Markt :P
Sie könnten auch etwas wie Scaffold dafür verwenden, was auch eine Reihe weiterer Vorteile bietet (Caching, verschachtelte Selektoren, Komprimierung usw.).
Scaffold wäre das, was ich verwenden würde, wenn ich diesen Weg einschlagen würde. Ich habe es ausprobiert, aber leider funktioniert es nicht auf meinem WAMP-Setup.
Dann verwenden Sie LAMP. Benutzt irgendjemand WAMP für ernsthaftes Produktionshosting?
Chris,
Da Sie der WordPress-Experte sind, dachte ich, ich frage mal. Gibt es eine einfache Möglichkeit, das in ein WordPress-Theme zu integrieren?
Oft bekomme ich, wenn ich ein Theme verkaufe, Anfragen, Farben usw. zu ändern, von Leuten, die kein CSS können. Wenn sie nur ein paar Variablen am Anfang ändern müssten, wäre es leicht zu erklären.
Ich war immer verwundert, warum diese Erweiterung so gewünscht wird, da diese Funktionalität bereits existiert. Haben Sie nicht die Möglichkeit, Pseudovariablen mit der Fähigkeit zur Angabe mehrerer Klassen zu haben?
Süß
Süße
Das bedeutet, dass Sie den Stil im HTML definieren müssten. Ich werde nicht erklären, warum das schlecht ist, Google weiß es ;)
Das ist genau das, was ich posten wollte. Ich fand es sehr befreiend, schnell Divs zu erstellen, z. B.
div class=”w500px h200px float-l bgcolor1 textcolor3 font1″
Ich sehe keinen Grund, warum das schlechter oder schwerfälliger sein sollte, als einem Element eine ID zu geben und dafür einen Stilblock zu erstellen, als ich damit herumgespielt habe, konnte ich mit weniger Code mehr machen, da man eine Reihe von Design-spezifischen Variablen deklarieren und sie dann einfach auf jedes gewünschte Element anwenden kann. Es richtet sich auch gut mit jQuery für addClass und toggleClass ein. Ich würde gerne die Nachteile dieser Methode erfahren. Offensichtlich könnte es bei dynamisch generiertem Inhalt kniffliger werden. Ich habe bemerkt, dass Facebook viele dieser beschreibenden Klassen in seinem Markup verwendet.
Das WordPress-Theme Mandigo verwendet diese Technik. Das Stylesheet ist style.css.php. Interessantes Theme, aber das erschwert die Modifizierung des Themes auf Code-Ebene. Der Endbenutzer hat über die Admin-Theme-Optionen ziemlich viel Kontrolle.
ohhh. interessant. Das wäre ein großer Anreiz, wenn Benutzer Farben in einem Admin-Panel einstellen könnten, denke ich.
Danke Chris. Das wäre sehr hilfreich. Ich werde es in meinen zukünftigen Projekten ausprobieren.
Wenn Sie diesen zusätzlichen Overhead für das Projekt aufbringen wollen, dann wird csscaffold diese Aufgabe wohl gut erledigen.
Ich bin dafür. Gut gemacht, dass du darauf hingewiesen hast.
Ich habe ein style.php zusammen mit einem netten JS-Farbwähler-Plugin von http://www.eyecon.ro verwendet, um einige coole WP-Admin-Oberflächenoptionen zu erstellen – Sie können Ihren Benutzern ganz einfach ein JS-Farbrad geben!
Das einzige Problem, auf das ich gestoßen bin, war, dass man wp_config.php am Anfang von style.php aufrufen musste, um Zugriff auf alle WP-Funktionen/Datenbankoptionen zu erhalten.
Der einzige andere Nachteil ist natürlich, dass einige Code-Editoren (Dreamweaver) ihn nicht richtig farblich hervorheben, was ihn zunächst etwas verwirrend machen kann.
Schöner Artikel!
Für diejenigen, die sich fragen, warum style.php in WordPress nicht funktioniert
Eigentlich hat WordPress damit kein Problem. Die Verwendung von PHP in CSS in WordPress ist kein Problem, wie bei einer normalen Datei.
Da die meisten Themes jedoch eine schnelle Tag-Notation verwenden: „get_bloginfo(‚stylesheet_url‘)“, muss es sich um style.css handeln, da dieser bloginfo-Kram nach style.css sucht.
Entweder
* style.css auf style.php umleiten;
* oder neu schreiben;
* oder eine leere style.css erstellen und style.php einbinden;
* oder es style.css nennen und über .htaccess den Server es als PHP interpretieren lassen (<– empfohlen und letztendlich die sauberste Methode)
—
TeMc
@TeMc,
Ich stimme zu, dass #4 am saubersten wäre, aber Sie könnten auf Probleme stoßen, wenn Sie das Theme verkaufen. Einige Shared-Hosts erlauben .htaccess nicht, zum Beispiel. Es könnten wenige sein, aber es könnte immer noch ein Problem sein.
Ich habe es noch nicht versucht, aber ich frage mich, ob man sich in get_bloginfo einklinken und style.css in style.php ändern könnte.
Fünfte Option
Bearbeiten Sie den Theme-Header und ändern Sie
Zu
/style.php
Ich würde argumentieren, dass das sauberer war, als Benutzer unnötigerweise mit .htaccess-Dateien herumfummeln zu lassen.
Nur meine Meinung.
Verdammt! Meine php wurde herausgefiltert
Sollte sein
ändern
get_bloginfo(‘stylesheet_url’)
zu
get_bloginfo(‘stylesheet_directory’)/style.php
oder vielleicht sogar etwas wie
get_bloginfo('stylesheet_url').phpund verwenden Sie style.css.php. Ich werde diese Optionen später ausprobieren müssen. WordPress ruft die Theme-Informationen aus style.css ab, also müssten Sie entweder eine separate style.css mit diesen Informationen haben, oder vielleicht würde style.css.php trotzdem funktionieren, und deshalb macht Mandigo das.
Oooh, nett. Das habe ich noch nie gedacht – habe es gerade getestet und es funktioniert großartig.
Gut gemacht, Tim!
Sie benötigen natürlich immer noch eine style.css-Datei, da ein WordPress-Theme ohne diese nicht gültig ist.
…was genau das ist, was Sie gerade gesagt haben.
Ich setze das oben auf ccs/php-Dateien
ob_start (“ob_gzhandler”);
header(“Content-type: text/css; charset: UTF-8”);
header(“Cache-Control: must-revalidate”);
$offset = 60 * 60 ;
$ExpStr = “Expires: ” . gmdate(“D, d M Y H:i:s”, time() + $offset) . ” GMT”;
header($ExpStr);
Ich setze das oben auf css/php-Dateien
ob_start ("ob_gzhandler");
header("Content-type: text/css; charset: UTF-8");
header("Cache-Control: must-revalidate");
$offset = 60 * 60 ;
$ExpStr = "Expires: " . gmdate("D, d M Y H:i:s", time() + $offset) . " GMT";
header($ExpStr);
;
kann gekürzt werden zu
Fast alle PHP-Installationen unterstützen diese Methode
Es scheint, als ob unter dem Abschnitt „Variablen verwenden“ ein Tippfehler ist. Im ersten Codeblock sagt das PHP-Öffnungs-Tag „<php". Nur so bemerkt. Jedenfalls ist dies ein Artikel, der für die Leute sicherlich wertvoll sein wird. Danke für die Veröffentlichung.
Die Jungs von Bigspaceship haben Rosemary entwickelt, das alles Genannte leistet.
Es gibt auch andere Lösungen wie LESS (wirklich coole Features und Syntax), Sass und viele mehr…
Cheers.
aus irgendeinem Grund hat der LESS-Link im vorherigen Kommentar nicht funktioniert. Er ist http://lesscss.org/
Ich habe gerade einen Beitrag über die Verwendung von <a href="http://wordpresstheming.com/2009/12/dynamic-css-theme-options/"dynamic Stylesheets mit WordPress geschrieben. Dazu gehört das Übergeben von Variablen von einer Theme-Optionsseite an eine PHP-Datei mit einem CSS-Content-Type-Header.
Schauen Sie es sich an: http://wordpresstheming.com/2009/12/dynamic-css-theme-options/
Hallo Devin, es sieht so aus, als ob diese Seite jetzt weg ist. Hast du noch ein Tutorial dazu? Ich würde es gerne sehen!
Danke!
Hallo, ich kenne mich nicht gut genug mit PHP aus, um die Vorteile dieses Vorgehens gegenüber dem bloßen Ändern des CSS wirklich zu verstehen.
Könnte mir bitte jemand Aufklärung geben, denn ich mag das Konzept, aber ich bin nicht gut genug in PHP, um die Vorteile im Moment zu verstehen.
Ich würde mich wirklich freuen.
Danke
Der Vorteil besteht darin, dass Sie eine einzige Variable bearbeiten können, die an mehreren Stellen/Dateien verwendet wird.
Zum Beispiel, wenn Sie eine Sonderfarbe von z. B. #FF0 (hellgelb in diesem Beispiel) verwenden möchten, aber nicht jede Instanz in den CSS-Dateien bearbeiten wollen, können Sie einfach eine Variable wie diese in einer Datei namens ‚css_config.php‘ erstellen
$spotColor = ‘#FF0’;
Jede Ihrer CSS-Dateien kann die Master-Konfigurationsvariablen wie folgt einschließen
require_once(‘css_config.php’);
Indem Sie Ihre CSS-Dateien als css_styles.php definieren und deren Ausgabe als text/css-Content-Typen „faken“, verhält es sich für den Browser so, als hätten Sie eine normale .css-Datei mit der Leistung von PHP aufgerufen.
Übrigens, ein weiterer Tipp, um Ihren PHP-Code zu kürzen und ihn leichter unauffällig zu machen, können Sie Folgendes tun
Ich hoffe, das hilft...
Liebe es!
Vielen Dank für die Erklärung, ich verstehe es jetzt. Das ist eine großartige Idee für eine große Website mit vielen verschiedenen Seiten und Abschnitten.
Gute Arbeit, Mann, ich bin dankbar für deine Hilfe.
Das ist sehr cool… ABER…
Es ist ein schlechter Schritt, wenn Sie Themes verkaufen. Käufer können nicht auf die „Editor“-Optionen von WordPress zugreifen, was ein MAJOR-Deal-Breaker ist.
Außerdem funktioniert die Syntaxhervorhebung für das CSS nicht, was die Verwaltung großer Dateien extrem mühsam macht.
Wenn es für Ihr persönliches Theme ist, dann legen Sie los! :-)
Erwägen Sie Compass @ http://wiki.github.com/chriseppstein/compass – basierend auf SASS (https://sass-lang.de/)
argh, mein Beitrag hat nicht funktioniert.
Ich wollte posten
?=$var;?
(zwischen spitzen Klammern)
Die Verwendung von Short-Tags in PHP wird im Allgemeinen nicht empfohlen – sie kann mit dem XML-Öffnungs-Tag in Konflikt geraten.
Außerdem sind Short-Tags auf einigen Servern deaktiviert, sodass Sie bei der Verteilung von Code auf vermeidbare Kompatibilitätsprobleme stoßen können, wenn Sie ihn in Ihren Themes und dergleichen verwenden.
Si
Der große Nachteil des Ansatzes ist das Caching.
Normalerweise ist CSS eine Datei, die sich nicht oft ändert, daher ist der Trend, sie stark zu cachen, um Anfragen vom Client zu vermeiden.
PHP-Dateien werden standardmäßig nicht gecached, sodass die Anfrage bei jedem Besuch gestellt wird. Sie sollten die Cache-Header aus dem Code mit der Funktion „header“ setzen oder Ihrem HTTP-Server mitteilen, wie er es tun soll.
Toller Tut, auf jeden Fall!
Ihr Jungs denkt zu kompliziert. Erstellen Sie die style.css-Datei, die die Vorlageninformationen lädt, aber laden Sie sie nicht in Ihrem HTML-WordPress-Theme-Header.
Enqueuen Sie einfach stattdessen style.php.
Die Leistung ist allerdings mies, da der Server die style.php-Datei immer noch parst, auch wenn sie leer wäre.
Ich wünschte, es wäre mehr so
Ich hatte mit Variablen keinen Erfolg. CSS muss mit OOP Schritt halten. Es würde uns allen definitiv viel Zeit sparen.
Wenn Sie eine relativ geschäftige Website haben, wäre es praktisch, eine Art Caching-Möglichkeit zu implementieren.
Das ist erstaunlich, ich hatte keine Ahnung, dass man das tun kann.
+1 für Scaffold
Ich habe Variablen in CSS nie vermisst.. und das Einrichten all dieser Dinge und das Tippen all der -php- echo ‚blah‘; -php- Sachen erscheint nicht effektiv genug, um es überhaupt zu versuchen
Ich meine, color:#535353 ist viel kürzer als -php- echo $textcolor -php- Was zum Teufel macht das Schreiben von CSS besser/kürzer/einfacher?
Die Hauptpunkte für die Verwendung dieser Methode sind zweifach
1.) Bearbeitung einer einzelnen Variable über mehrere Frameworks/eingebundene Dateien hinweg auf einer großen Website.
2.) Die Möglichkeit, das Markup von den Werten zu abstrahieren, indem Variablen in einem editierbaren Administrationsbereich platziert werden, der dann einfach die Variablen aktualisiert und es Nicht-Administratoren nicht erlaubt, das Markup selbst zu berühren.
Nur ein paar reale Beispiele dafür.
Hallo Norman – Ich bin sehr neu in CSS, aber ich glaube, Variablen werden mir hilfreich sein. Ich habe eine Website/Web-App im Frühstadium, die eine beträchtliche Menge interner Verlinkungen haben wird. Dank dieses Beitrags verwende ich diese Methode, um Variablen für all meine Links zu erstellen. Wenn sich meine Dateistruktur weiterentwickelt oder ändert, muss ich jede Link-Variable nur einmal aktualisieren, anstatt jede Instanz dieses Links auf allen Seiten zu suchen.
Obwohl es einen Nachteil geben könnte, den ich noch nicht kenne.
Danke für diesen Beitrag. Wie mein Vorredner habe ich Variablen in CSS nicht vermisst. Reicht es nicht, dass man PHP, HTML, CSS und JavaScript im Index findet? Sollte PHP im CSS sein? Wann ist es an der Zeit, PHP in JavaScript zu setzen, um CSS in HTML zu schreiben?
Ich verwende PHP in meinem JavaScript und CSS, damit ich Benutzern die einfache Änderung von Variablen über freundliche Benutzeroberflächen ermöglichen kann.
Benutzer könnten beispielsweise Farben mit einem benutzerfreundlichen Farbrad in der Admin-Oberfläche ändern und sich nie Sorgen machen müssen, rohes CSS zu bearbeiten (und möglicherweise die Website zu beschädigen).
Es geht um das Benutzererlebnis!
Ihr solltet euch xCSS ansehen, es ist nicht wirklich bekannt, aber es ist sehr mächtig, es minifiziert sogar das CSS, wenn man es in der Konfiguration angibt
zustimm
Könntest du HEREDOC-Syntax verwenden? Dann müsstest du nicht in PHP springen, um Variablen auszugeben, du könntest einfach sagen background-color:$brandcolor;.
Ich meine HEREDOC-Syntax :P
Gute Idee… Du könntest den gesamten unteren Teil der Datei (die CSS-Sachen) in HEREDOC einschließen und es auf diese Weise machen.
So habe ich es in der Vergangenheit gemacht. Funktioniert ziemlich gut. Und wenn du Textmate verwendest, stelle es in den CSS-Modus und es wird immer noch die Syntax richtig hervorheben.
Bitte beachte die Leistungsprobleme und verwende bei dieser Lösung entweder den „Expires“-Header, um das Caching auf Client-Seite zu ermöglichen (gut) oder parse die Datei serverseitig vor, bevor du sie als normale statische CSS-Datei zur Verfügung stellst (besser).
Du möchtest nicht, dass der Client jedes Mal CSS neu herunterlädt und neu parst…
Das ist äußerst nützlich, und es sei denn, du machst einige extreme PHP-Sachen innerhalb des CSS (was du nicht tun solltest), dann sollte die Leistung kein Problem sein.
Stelle nur sicher, dass du GZIP verwendest, komprimierst oder den Code in einzelne Zeilen codierst.
Das ist sicherlich sehr cool und kann ein wirklich mächtiges Werkzeug sein, aber ich würde keine PHP-Skripte auf einer Produktionsseite verwenden. Es ist nur ein weiterer Engpass. Stattdessen solltest du PHP verwenden, um eine statische Datei zu generieren und diese als dein Stylesheet zu verlinken.
Das ist ein Anfang, aber die Verwendung ohne Caching könnte schlecht für deinen Server enden.
Verwende etwas wie Scaffold, wenn du diesen Weg einschlägst, aber ich bin vielleicht ein wenig voreingenommen :)
@Logan Das ist gar nicht schlecht, wenn du die Datei nach der Verarbeitung zwischenspeicherst.
Geniales Konzept!
Gibt es eine Ahnung, ob CSS jemals Variablen unterstützen wird?
„Backen statt braten“
Wenn es keinen wirklich, wirklich guten Grund gibt, das CSS dynamisch zu generieren, dann sollte es beim Build und nicht zur Laufzeit generiert werden.
Das Ausliefern einer statischen Antwort ist viel schneller als das Ausliefern dynamischer Antworten und belastet die Server weniger. Statische Antworten sind auch viel einfacher auf CDNs zu übertragen.
Andere haben erwähnt, die Cache-Header und GZIP zu setzen, aber vergiss nicht, auch zu minifizieren.
Andy
Hallo, ich bin ein großer Fan von dir, aber warum tippen, es ist einfacher, wenn du #555 tippst
ul#main-nav li a {
color: ;
}
ul#main-nav li a {
color: #555;
}
Ich frage mich, warum so wenige Leute anstelle von verwenden. Es macht den Code viel lesbarer und ich weiß, dass ich, wenn ich jemals Probleme damit bekomme, einfach eine globale Suche und Ersetzung durchführen kann.
Genialer Tipp, danke Chris.
Um WordPress-Funktionen in der Datei zu verwenden, wenn die erste Methode verwendet wird, füge dies zu customstyle.php, deinem PHP-Stylesheet, hinzu
Danke!
@Arun Basil, das wird nicht vollständig funktionieren. Was ist, wenn WP in einem anderen Verzeichnis liegt? Das Dokumenten-Root wäre htdocs oder public_html und nicht das eigentliche WP-Verzeichnis. Ich würde das Beispiel aus diesem Tutorial für Portabilität verwenden.
Hat gerade mein Leben gerettet. Danke!
Nur zur Information, ich habe dies in WordPress 3.8.1 ohne das Apache mod oder die wp_load-Modifikation zum Laufen gebracht.
Vielen Dank für die Veröffentlichung!
Ich fange gerade an, damit herumzuspielen.
@Scott Russell, verwendest du wp_register/wp_enqueue_style, um die style.php-Datei zu laden?