问题描述

我最近发布了一个插件 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 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。