将父主题生成的样式表添加到子主题style-.css之后

时间:2011-04-08 作者:mikkelbreum

我有一个子主题->父主题设置,在这里我需要有一个名为generated的样式表。除了样式之外,还加载了css。由活动子主题添加的css文件。生成的。css文件位于父主题中,并由父主题动态生成和提供。。

我以显而易见的方式开始,只是在子主题样式的开头添加了一个导入规则。css:

/* Get Parent BASE CSS */
@import url(\'../parent-theme/style.css\');


/* Get Parent GENERATED CSS */
@import url(\'../parent-theme/generated.css\');
但这不起作用有两个原因。

1) 我希望能够向文件中添加一个破坏缓存的版本号:

<link rel=\'stylesheet\'  href=\'http://www.com/wp-content/themes/parent-theme/generated.css?ver=2389642855\'>
2)我希望文件在子主题样式之后最后加载。css

是否有可能钩住所生成的负载。css样式表添加到头部,以便在子主题的样式之后添加。css使用函数。父主题的php?

我可以使用什么挂钩或WP机制?

2 个回复
最合适的回答,由SO网友:Drew Gourley 整理而成

绝对地

转换为函数。php,就像你说的。我将其称为cache\\u-bursting\\u样式,因为我喜欢它的声音。

首先,通过wp\\u enqueue\\u style设置样式,然后在操作挂钩期间调用它wp\\u print\\u style,此外,还需要设置一个变量并将其作为版本号传递到其中:

function cache_busting_styles() {
    //however you set up your version number here
    $version = \'cachebustingversion\';
    wp_enqueue_style(\'cachebusting\', get_bloginfo(\'template_url\').\'/parent-theme/generated.css\', \'\', $version, \'screen\');
}
add_action(\'wp_print_styles\', \'cache_busting_styles\');
wp\\u enqueue\\u style接受5个参数,第一个是句柄,wordpress与样式表关联的ID(必须唯一),第二个是文件的URL,第三个是它所依赖的其他文件(应该与此文件一起加载的任何必需文件,我将其保留为null,您可以添加任何需要的内容,它使用其他排队样式表句柄),第四个是版本,它会添加到链接URL的末尾,就像您正在查找的一样(您可以将任何您想要的内容传递到此链接URL中,WordPress默认情况下会将其当前版本放在此处),最后是CSS文件的媒体参数(screen、print、all等)我希望这有帮助!

Edit:只是想说明使用此方法应始终将此工作表添加到默认样式表之后,但为了确保add\\u action接受第三个参数,这是该操作的优先级。一个非常大的数字可以保证它最后运行,但是像8或12这样的数字就可以了,以防万一你需要强制下订单。

add_action(\'wp_print_styles\', \'cache_busting_styles\', 12);

SO网友:Amit Singh

您只需将生成的排入队列即可。css样式。在子主题函数中使用以下代码。php文件

wp_enqueue_style(\'name_of_theme\', get_bloginfo(\'template_directory\') . \'/generated.css\', array(), \'1.0\', \'screen\');

结束