子主题不覆盖父主题php文件

时间:2020-06-18 作者:Alton Caber

我不熟悉Wordpress和儿童主题的工作原理。我的子主题我正在尝试覆盖子目录中的两个文件。我复制了父文件并在子主题中编辑了它们,但更改不会反映在父主题中。我正在尝试更改功能图像大小的代码。我成功地在parent中更改了代码以测试它,并且它正常工作。但子主题并没有覆盖它。

/public_html/wp-content/themes/sahifa/framework/functions/theme-functions.php    
/public_html/wp-content/themes/sahifa-child/framework/functions/theme-functions.php
/public_html/wp-content/themes/sahifa/framework/parts/related-posts.php
/public_html/wp-content/themes/sahifa-child/framework/parts/related-posts.php
我的另一个问题是,我是否需要复制每个文件夹中的所有文件更新:根据一些建议,我不知道如何添加代码。如果能给我展示一下,我将不胜感激。以下是指向我的Google Drive上的文件的链接:

https://drive.google.com/file/d/1xDx62NxDIj3HlEkh3_txZa4mywW-2SlP/view?usp=sharing

https://drive.google.com/file/d/127oDdNQWxritIVXcvbHURANg5b4tpJCL/view?usp=sharing

更新:我在父主题中看到函数中的这行代码。php文件:

// Main Functions
require_once ( get_template_directory() . \'/framework/functions/theme-functions.php\');

1 个回复
SO网友:Sisir

如果php文件是getincluded或required来自函数。父主题中的php文件所有代码都添加到运行时,如果您在类似的目录结构中创建文件,则不会替换这些代码。

那么,什么可以替代呢

仅通过调用文件get_template_part() 可以这样替换。对于中的任何文件也是如此template hierarchy

如果父主题使用add_action()add_filter() 使用函数名,您可以使用remove_action()remove_filter() 并使用自己的替代品。

如果父主题使用function_exists()class_exists() 使用if封装函数/类,可以从子主题替换它们functions.php 文件

相关推荐

Child-theme breaks site

所以,我有一个子主题,里面除了所需的CSS文件之外什么都没有。一旦我激活了这个儿童主题,我的整个网站就关闭了。最后我有两个问题:激活一个只有CSS的子主题怎么能破坏我的网站</我怎样才能回到我原来的主题</这些是网站给我的错误:Warning: require_once(/wp-content/themes/interio_child/admin/options-framework.php) [function.require-once]: 无法打开流:中没有此类文件或目录/wp-c