問題描述

我最近釋出了一個外掛 WP Coda Slider,它使用短碼將 jQuery 滑塊新增到任何帖子或頁面。我在下一個版本中新增一個選項頁面,我想包括一些 CSS 選項,但我不希望外掛將樣式選擇新增為內聯 CSS 。我希望這些選擇在被呼叫時動態新增到 CSS 檔案中。

我還要避免使用 fopen 或寫入檔案來解決安全問題。

這樣的東西可以輕鬆完成,還是直接在頁面上新增樣式選擇呢?

最佳解決方案

使用 wp_register_stylewp_enqueue_style 新增樣式表。不要簡單地新增一個樣式錶連結到 wp_head 。排隊樣式允許其他外掛或主題在必要時修改樣式表。

您的樣式表可以是.php 檔案:

wp_register_style('myStyleSheet', 'my-stylesheet.php');
wp_enqueue_style( 'myStyleSheet');

my-stylesheet.php 將如下所示:

<?php
// We'll be outputting CSS
header('Content-type: text/css');

include('my-plugin-data.php');    
?>

body {
  background: <?php echo $my_background_variable; ?>;
  font-size: <?php echo $my_font_size; ?>;
}

次佳解決方案

動態構建一個 CSS 檔案,然後載入它會增加一個巨大的效能負擔,應該是一個非常低的頻寬交易新增一個 CSS 檔案,特別是如果有透過 WP 處理的 CSS 中的變數。因為它是為一個頁面載入建立的兩個不同的檔案,WP 啟動兩次並執行所有的資料庫查詢兩次,這是一個很大的混亂。

如果您的滑塊只能在一個頁面上,並且您希望動態設定樣式,那麼最好的方法是將樣式塊新增到標題中。

按效能順序:

  1. 在標題中新增小塊樣式,動態建立 – 非常快

  2. 透過 wp_enqueue_style 新增 non-dynamic 樣式表 – 中

  3. 透過 wp_enqueue_style 新增動態樣式表 – 非常慢

參考文獻

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