問題描述

我最近發佈了一個插件 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 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。