我正在开发两个不同的WordPress网站,这些网站在很多方面相似,但皮肤不同。
例如,假设我正在处理两个“杂志”网站,它们共享相同的CSS布局,例如网格系统,边缘等,但不同的CSS装饰属性,例如渐变,颜色,阴影。
让他们分享相同的基本CSS布局,但不同的装饰CSS的最佳方法是什么?
最初我想的是......
<link rel="stylesheet" type="text/css" media="all" href="LINK-TO-BASE-CSS-ON-PRIMARY-DOMAIN.css" />
<link rel="stylesheet" type="text/css" media="all" href="<?php bloginfo( 'template_url' ); ?>/style.css" /> <!-- This would be the 'top-up' CSS -->
但这对我来说似乎并不特别干净。我承认,还有一个非常相似的问题here。
这仍然被认为是最好的方法吗? 链接到另一个域有什么缺点吗?我已经读过,由于跨域加载,这甚至可能是优势。
答案 0 :(得分:6)
你的建议很好。我不确定是否存在称为“跨域加载”的优势,但在另一台服务器中托管样式表是一种非常常见的做法。此其他服务器称为CDN或内容分发网络。以下是有关CDN及其优势的一些信息:
http://www.sitepoint.com/7-reasons-to-use-a-cdn/
此外,如果您要使用单独的域来托管文件,请提示:执行一些DNS prefetching。这很简单:
<link rel="dns-prefetch" href="//myexternalcdn.com" />
答案 1 :(得分:1)
尝试分离布局结构和模板,并调用来自同一域的所有内容
<link rel="stylesheet" type="text/css" media="all" href="fileserverdomain/css/structure.css" />
<link rel="stylesheet" type="text/css" media="all" href="fileserverdomain/css/firsttamplatename.css" />
OR
<link rel="stylesheet" type="text/css" media="all" href="fileserverdomain/css/structure.css" />
<link rel="stylesheet" type="text/css" media="all" href="fileserverdomain/css/secondtamplatename.css" />
此解决方案的好处是您可以自行提供切换模板:D
答案 2 :(得分:0)
您可以使用此过滤器来过滤掉任何条件或替代输出href字符串的样式,例如:
add_filter( 'style_loader_src', function($href){
if(strpos($href, "name-of-allowed.css") !== false) {
return $href;
}
return false;
});