4

我正在开发两个不同的 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 -->

不过,这对我来说似乎不是特别干净。我承认,这里也有一个非常相似的问题

这仍然被认为是最好的方法吗?链接到另一个域有什么缺点吗?我已经读到,由于跨域加载,这甚至可能是一个优势。

4

3 回答 3

7

你建议的很好。我不确定是否存在称为“跨域加载”的优势,但将样式表托管在另一台服务器中是一种非常常见的做法。此其他服务器称为 CDN 或内容交付网络。以下是有关 CDN 及其优势的一些信息:

http://www.sitepoint.com/7-reasons-to-use-a-cdn/


另外,专业提示:如果您要使用单独的域来托管文件,请进行一些DNS 预取。这很简单:

<link rel="dns-prefetch" href="//myexternalcdn.com" />
于 2013-03-11T14:07:34.463 回答
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" />

或者

<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

于 2013-03-11T13:57:55.603 回答
0

您可以使用此过滤器来过滤出具有任何条件或备用输出 href 字符串的样式,例如:

add_filter( 'style_loader_src', function($href){
if(strpos($href, "name-of-allowed.css") !== false) {
return $href;
}
return false;
});
于 2017-08-11T11:05:29.837 回答