此CSS填充有效,但这是一个好习惯吗?


9

我正在尝试在插件中包含动态CSS,我一直在任何地方搜索,但找不到与我的操作类似的情况。我要做的是在关闭php标签后直接将css文件添加到插件php文件的末尾,?>而不添加其他任何东西,例如调用wp head等。

这是我直接放入插件文件末尾的代码示例:

<style type="text/css">

   .innertrow { background-color: <?php get_options('css_value');?>}

</style>

这是个好习惯吗?

Answers:


11

您可以使用wp_add_inline_style()将其添加到已定义的样式表中,例如在插件中。这样,选项屏幕或其他用户设置可以影响最终样式的输出。

但是,这可能会变得非常乏味,具体取决于您为用户提供了多少控制权。但是,据我所知,这是“最佳实践”。


1
因此,有些功能是我在WP中不知道的。:) +1偏离路线。
gmazzap

2

当然,这不是一个好习惯,因为Wordpress会将其视为插件错误。它将在激活插件时输出一条错误消息,如下所示:

The plugin generated xxx characters of unexpected output during activation. If you notice headers already sent messages, problems with syndication feeds or other issues, try deactivating or removing this plugin.

其中xxx是您在?>标签后加上的代码+空格的数量。这与<?php在主插件中的第一个标签之前或之后定位空格或不可接受的代码相同。


1

我相信可以使用PHP动态编写CSS文件,但是您需要了解更多信息,我自己对此并不了解。我计划很快做,因为我注意到人们在我正在研究的主题上放了很多CSS。这在很多方面都是不好的做法,因此最好避免。可悲的是一天只有24小时...!


1

如果您需要添加动态CSS且尚未添加要添加到其中的样式表,则可以将其插入并在wp_head动作钩子中输出:

<?php
function wpse_111373_output_plugin_css() {
    ?>
    <style type="text/css">
        .innertrow { background-color: <?php get_option('css_value'); ?>;}
    </style>
    <?php
}
add_action( 'wp_head', 'wpse_111373_output_plugin_css' );

不要只是将CSS添加到插件文件的末尾。但是,我不知道这是“最佳实践”。:)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.