我正在基于现有父主题创建一个 WordPress 子主题,并且我希望我放在子主题目录中的任何同名文件优先于父主题目录中的文件。我认为这就是在 WP 中设置父/子主题的方式,但我遇到了一个问题。
根据儿童主题的 WordPress 法典,它说:
模板文件
如果你想改变的不仅仅是样式表,你的子主题可以覆盖父主题中的任何文件:只需在子主题目录中包含一个同名文件,它将覆盖父主题中的等效文件网站加载时的目录。
在我的一个文件(header.php)中,有一个如下所示的包含:
include get_parent_theme_file_path("folder/file.php")
即使我的子主题中有该 file.php 的重复命名但修改的版本,它仍然使用我的父主题中的版本。根据相同的 codex,他们针对子主题文件的建议是使用 get_stylesheet_directory(),所以它看起来像这样:
include (get_stylesheet_directory()."/folder/file.php");
我了解名为“get_parent_theme_file_path()”的函数的目的是忽略父/子关系并仅获取父主题版本,因此无需用在我的子主题中显式获取文件的函数替换它(即 get_stylesheet_directory ),有没有一种方法可以让我拥有某种通用的 get_path() 函数来首先检查子级,如果它不存在,则获取父版本?
顺便说一句,我读过在 "get_parent_theme_file_path vs. get_template_directory" 上阅读了这个问答,但他们的解决方案是使用 parent_theme_file 过滤器,但这不是动态的,并且需要我为我希望它使用的每个子文件编写一个过滤器函数.
谢谢你的帮助。