【问题标题】:Same theme in WordPress multisites but with custom css?WordPress 多站点中的相同主题但使用自定义 CSS?
【发布时间】:2019-11-22 19:34:05
【问题描述】:

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

例如:

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

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

问候,

【问题讨论】:

    标签: wordpress wordpress-theming multisite


    【解决方案1】:

    由于您需要为两个站点使用相同的主题,我真的建议您使用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>
      */
      
    • 添加其余所需的模板文件

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

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

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

    • 中添加您需要在子主题中覆盖的所有文件
    • 创建/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 用于第二个站点

    主题部分,确保分配:

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

    我希望这会有所帮助。 干杯!

    【讨论】:

    • 您好 Marounm,非常感谢您。所以我必须先配置站点 1,然后复制 css 选项以在子主题上进行自定义。这个过程似乎很清楚。比你,我会试试的:)
    • 其实子类是没有必要的,在你的-child 主题的style.css 文件中添加的所有样式无论如何只会影响站点2。我更新了我的答案,确保相应地遵循。现在关于您所说的,是的,您必须在为其分配 site1 主题后首先将 site1 配置为主网站,然后按照我的回答中的讨论创建 site2 并相应地分配 site1-child 主题,如果解决了你的问题:)
    • 您不应该在 css 文件上使用 @import。最好在您的子主题中创建一个 functions.php 文件并在那里导入子主题
    • @catmal 我正在使用 import 来将主 css 文件复制到子 css 中,我需要将它完全加载到这个文件中,这就是为什么我没有在子 css 中使用 enqueue 函数主题的functions.php。无论如何,这对于主子主题 css 来说不是什么大问题,您始终可以通过覆盖子主题文件夹中的 function.php 并将您的入队函数添加到其中,以正确的方式导入其他 css/脚本(与其他加载的库相关)。
    • 如果从子主题 css 文件中删除导入,创建一个 functions.php 并添加代码,如下所示 codex.wordpress.org/Child_Themes
    【解决方案2】:

    虽然子站点选项是一个很好的解决方案。我有一种情况,我只想更改一些 CSS 样式!所以我选择了以下操作。

    在主题标题中,我得到了站点的 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; } 
    

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 2017-01-02
      • 1970-01-01
      • 1970-01-01
      • 2021-05-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多