如何支持快捷码的额外颜色选项?

时间:2014-02-16 作者:user1981248

我正在创建一个WordPress主题,它几乎完成了。我已经为一些元素创建了一些短代码,包括具有不同颜色选项的按钮,如蓝色、绿色、红色等。我现在想要的是,如果用户不喜欢提供的颜色选项,可以允许用户提供自己的颜色十六进制值,例如:

[button color="#123423"]Button Text[/button]. 
现在我也知道如何在后端获得价值,但我只是不知道如何在CSS中提供支持。例如,我有这样的东西:

.button-blue{
    background: blue;
}
.button-green{
    background: green;
}
现在,如何为该特定按钮插入用户提供的按钮颜色?

1 个回复
最合适的回答,由SO网友:tfrommen 整理而成

您有多种选择


A)使用内联CSS:

<button style="background: <?php echo CHOSEN_COLOR_HERE (possibly validated) ?>;">
    ...
</button>
将(特定于ID的)CSS样式写入页面。在shortcode函数中,回显<style> 标记,例如,like so:

<style>
#shortcode-button-1 {
    background: <?php echo CHOSEN_COLOR_HERE (possibly validated) ?>;
}

#shortcode-button-2 {
    background: <?php echo CHOSEN_COLOR_HERE (possibly validated) ?>;
}
</style>
对于这种方法,你需要跟踪你的短码按钮,这意味着:给它们一些你用来定位按钮的唯一ID
C)使用动态样式表(即shortcode-styles.php 用作CSS文件的文件)。

对于这种方法,您需要注册您的短代码按钮(例如,在某些全局变量、瞬态、选项等中)。然后,使用一些延迟运行的挂钩(例如。,wp_footer, wp_print_footer_scripts 等)将php/CSS文件排入队列,该文件可能如下所示:

<?php
header(\'Content-type: text/css\');
// Suppose you are using a global variable for your shortcode buttons
global $shortcode_buttons;
foreach ($shortcode_buttons as $id => $color) {
    ?>
    #shortcode-button-<?php echo $id; ?> {
        background: <?php echo $color; // maybe validate ?>;
    }
    <?php
}
?>
<小时>Note: 我没有对此进行任何测试,但是,我希望您能理解我的想法。

结束

相关推荐

CSS changes not taking effect

我会改变我的风格。css文件,但它们不会在网站上生效。风格css位于此处:/wp内容/主题/学院/风格。css我以前对它做过更改,这些更改确实生效了,但现在我正在做新的更改,但它们没有生效。我已经尝试通过FTP添加带有更改的CSS,并且还尝试使用Wordpress菜单中的“编辑器”。如果我在浏览器中查看CSS文件的源,则不会显示更改。我可以用FTP从服务器上取下文件,查看代码,看看CSS是否存在。我还可以在Wordpress编辑器中看到CSS。我已经清除了缓存和cookie,刷新了浏览器,使用了不同的浏览