WordPress 多站点中的主题相同但自定义 css?

Same theme in WordPress multisites but with custom css?

如何在 WordPress 多站点上应用相同的主题,但在每个站点上使用不同的主题选项?

例如:

site1 --> 红色主色的主题 X

site2 --> 绿色主色的主题 X

此致,

由于两个网站需要相同的主题,我强烈建议您使用 child themes:

Site 1 - Main theme:
  • 创建/wp-content/themes/site1
  • 创建/wp-content/themes/site1/style.css:

    /*  
    Theme Name: site1
    Template: site1
    Description: Site1 default theme
    Version: 1.0
    Author: <Author_Name>
    Author URI: <Author_URI>
    */
    
  • 添加其余所需的模板文件

然后链接主主题样式并在创建子主题时添加自定义 class,如下所示:

Site 2 - Child theme:
  • 创建/wp-content/themes/site1-child

  • 现在在 /wp-content/themes/site1-child/

    [=76 中添加您需要在子主题中覆盖的所有文件=]
  • 创建/wp-content/themes/site1-child/style.css:

     /*  
        Theme Name: site1 child
        Template: site
        Description: Site1 child theme
        Author: <Author_Name>
        Author URI: <Author_URI>
        */
    
  • 将此添加到您的 /wp-content/themes/site1-child/style.css(在注释主题信息下方)文件的顶部以包含子项中您的主要主题的样式:

    @import url("../site1/style.css");

  • 根据需要在 @import 下方添加您的自定义样式

Sites configuration:

在网络面板中创建站点后 (/wp-admin/network/sites.php),转到每个站点的 dashboard:

  • /wp-admin/ 主站点
  • /sitename/wp-admin 第二个站点

theme 部分中,确保分配:

  • 你的主站点到 site1 主题
  • 你的第二个网站 site1-child 主题

希望对您有所帮助。 干杯!

尽管 child 站点选项是一个很好的解决方案。我曾遇到过只想更改一些 CSS 样式的情况!所以我选择执行以下操作。

在主题 header 中,我得到了网站的 ID

$blog_id = get_current_blog_id();

然后在body标签中添加id为

<body id="site-id-<?php echo $blog_id; ?>" <?php body_class(); ?> >

然后这样输出 html:

<body id="site-id-3" class="page-template-default page page-id-8 logged-in admin-bar customize-support">

所以现在在我的 LESS / SASS 等中我可以添加如下自定义样式:

#site-id-3 p { color: red; } 

希望对您有所帮助