创建可自定义子主题

时间:2021-03-19 作者:Diego

情况如下:

我创建了一个子主题,它增强了一个流行的父主题。这些增强包括CSS、JS和php。我想在多个网站上使用此子主题,并且我想允许在每个网站上进行额外的自定义,而无需编辑我创建的子主题。

一些要求:

每个站点都使用相同的基本主题和一组标准的自定义项(我的子主题),但每个站点都可以有自己的附加自定义项(CSS、JS和php)non-standard at best and possibly a security risk.

那么,解决这种情况的最佳方法是什么呢?

Edit: 我现在不知道需要什么样的定制。因此,系统需要非常灵活和开放。

2 个回复
最合适的回答,由SO网友:Tom J Nowell 整理而成

我当前的解决方案是在子主题之外创建一个目录,其中包括用于自定义的CSS、JS和php文件

这是一个插件,一个包含PHP/JS/CSS的文件夹,在其中一个PHP文件的顶部有一条注释/** Plugin Name: XYZ 在文件的顶部。

<?php
/**
 * Plugin Name: XYZ
 */
然后引用子主题中的那些。

This isn\'t needed. 您可以提供挂钩/操作/过滤器,或使用WP提供的现有挂钩和过滤器。直接从themes文件夹外部包含文件是一种不好的做法,应该永远没有必要。从长远来看,它会导致维护问题。

编辑:我现在不知道需要什么样的定制。因此,系统需要非常灵活和开放。

如果你不知道,你就不知道该怎么做,但没关系。在某些时候,您需要更新子主题,添加挂钩总是很好的。父主题也可以这样做。否则这是一个不合理的要求,你不知道你不知道什么。

自定义JS和CSS如果您想在不修改主题的情况下向主题添加额外的javascript文件和样式表,您可以在插件中这样做。只需像往常一样将样式和脚本排队即可。

WordPress看不到父主题或插件或其本身排队的样式之间有任何区别。这些都是加载到memmory中的代码。没有插件脚本或主题样式之类的东西,也没有沙盒,因此没有任何东西阻止您以这种方式添加额外的样式和脚本。

也许如果您想添加内联代码标记,我可以理解,但有一些API可以实现这一点,例如。wp_add_inline_script. 如果您真的必须直接添加它,那么有如下挂钩wp_head 属于wp_footer 等来完成。

自定义PHP根据定义,插件是自定义PHP。您可以使用插件执行任何自定义PHP。

如果您想用插件中的新模板替换模板,也可以使用正确的过滤器来完成。WooCommerce做到了这一点,许多插件做到了这一点,覆盖了特定的模板或添加了子文件夹。

所以使用插件吧!

SO网友:vancoder

首先,我要确保您的孩子主题配有挂钩,以适应潜在的定制。

其次,我将创建一个特定于站点的插件,即要定制的站点,它利用主题的挂钩进行所需的更改。这将不受主题更新的影响,并将正确集成到标准WordPress架构中。

相关推荐

About wordpress child themes

我对WordPress和儿童主题有一些问题。据我所知,如果我不想在更新主题时失去任何东西,使用子主题是很重要的。我是WordPress的初学者,到目前为止,我一直在使用PageBuilder(管理面板上的板载自定义选项)自定义我的网站,并在“附加CSS”选项中加入几行CSS。所有这些都是在主主题上完成的(只是玩转尝试学习),现在我想开始使用一个儿童主题。问题如下:我不知道我是否可以像通过管理界面设计父主题那样设计我的子主题,或者我是否必须通过文本编辑器(在我的计算机上,然后通过FTP等方式上传)对所有内容