問題描述
我正在創建一個主題,用户可以通過設置 API 從主題定製程序中保存自定義樣式。這些樣式信息作為序列化數據保存在選項表中。
當自定義皮膚處於活動狀態時,我將不得不在站點中打印這些 CSS 樣式。有三條路線我可能會去。
-
使用
<style>
標籤在標題區域打印自定義樣式。 -
創建一個
custom.css.php
文件,我打印這些樣式。 -
使用 php 文件操作創建一個 css 文件,並在用户保存自定義樣式時保存這些樣式。
所有這些都有利弊
-
使用
<style>
在<head>
中打印:該主題將被互聯網營銷人員使用,他們關心代碼到文本比例。添加 20-30 行的 css 代碼將增加代碼比率。 -
使用 PHP
header()
創建 CSS 文件:Wordpress 功能不可用。將需要加載它們是低效的。也是 IE have some issues with this method 。 -
每當用户保存自定義樣式時,編寫一個 CSS 文件:這似乎是一個好主意。但是我對這種方法的利弊知之甚少。並且如果用户在各種服務器中安裝主題可能會面臨任何權限問題。如果你能啓發我這個話題,我會感激的。
那麼在這種情況下,正確的方法是什麼呢?
最佳解決方案
當您的用户真正需要 30 行自定義 CSS 時,您的主題是有缺陷的。創建一組預定義的樣式 (黑暗和輕的方案,無襯線字體等),併為這些情況準備主要樣式表。您可以掛接到 body_class
然後添加您需要獲得這些樣式的類。您的用户調整應該非常小。
使用 endpoint for a PHP generated stylesheet 就像你的第二個選擇。這不是 IE 中的問題,緩存插件將有助於進一步減少處理時間。我將使用端點的最後一個更改的時間戳,例如:
example.com/css/012345678/
… 以確保瀏覽器獲取最新鮮的樣式表,並緩存文件。
選項 3 意味着:您必須按照 Filesystem API 保存文件,您必須確保以後不會被刪除 (棘手!),並且您應該替換舊文件以避免瘋狂數量的 CSS 文件。強制新文件替換緩存的文件而不附加 GET 參數也不容易。
使用端點。
參考文獻
注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。