問題描述

我正在建立一個主題,使用者可以透過設定 API 從主題定製程式中儲存自定義樣式。這些樣式資訊作為序列化資料儲存在選項表中。

當自定義皮膚處於活動狀態時,我將不得不在站點中列印這些 CSS 樣式。有三條路線我可能會去。

  1. 使用<style> 標籤在標題區域列印自定義樣式。

  2. 建立一個 custom.css.php 檔案,我列印這些樣式。

  3. 使用 php 檔案操作建立一個 css 檔案,並在使用者儲存自定義樣式時儲存這些樣式。

所有這些都有利弊

  1. 使用<style><head> 中列印:該主題將被網際網路營銷人員使用,他們關心程式碼到文字比例。新增 20-30 行的 css 程式碼將增加程式碼比率。

  2. 使用 PHP header()建立 CSS 檔案:Wordpress 功能不可用。將需要載入它們是低效的。也是 IE have some issues with this method

  3. 每當使用者儲存自定義樣式時,編寫一個 CSS 檔案:這似乎是一個好主意。但是我對這種方法的利弊知之甚少。並且如果使用者在各種伺服器中安裝主題可能會面臨任何許可權問題。如果你能啟發我這個話題,我會感激的。

那麼在這種情況下,正確的方法是什麼呢?

最佳解決方案

當您的使用者真正需要 30 行自定義 CSS 時,您的主題是有缺陷的。建立一組預定義的樣式 (黑暗和輕的方案,無襯線字型等),併為這些情況準備主要樣式表。您可以掛接到 body_class 然後新增您需要獲得這些樣式的類。您的使用者調整應該非常小。

使用 endpoint for a PHP generated stylesheet 就像你的第二個選擇。這不是 IE 中的問題,快取外掛將有助於進一步減少處理時間。我將使用端點的最後一個更改的時間戳,例如:

example.com/css/012345678/

… 以確保瀏覽器獲取最新鮮的樣式表,並快取檔案。

選項 3 意味著:您必須按照 Filesystem API 儲存檔案,您必須確保以後不會被刪除 (棘手!),並且您應該替換舊檔案以避免瘋狂數量的 CSS 檔案。強制新檔案替換快取的檔案而不附加 GET 引數也不容易。

使用端點。

參考文獻

注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。