TL;DR: 使用child theme 而是:)
如果我们深入研究code for get_template_part(), 那里有一个行动-get_template_part_{$slug}
- 我们可以把它钩住。
进一步挖掘,get\\u template\\u part()调用locate_template(), 哪个呼叫load_template(). 不幸的是,这两个函数中似乎都没有什么是可插入的,因此我们无法挂接和更改任何内容(除了能够通过调用load\\u template()中的extract()来设置变量……)。。。。但我们无法覆盖正在调用的模板文件,因此它无论如何都不是很有用!)
因此,您似乎只有在get_template_part_partials/post
行动问题是,这不允许您过滤调用的模板-它只允许您在调用模板时运行一些代码。如果您只想在模板代码上方添加一些输出,那么这将非常适合您,但我怀疑这就是您想要做的!
解决这一切的办法是use a child theme.
你说过你想把你的代码放进一个插件,以尊重原来的主题开发者。首先,这种尊重是令人敬畏的——许多开发人员对此毫不在意,所以我推荐您!
然而,插件是最好的选择吗?插件通常用于向站点添加模块化功能,而不是改变其外观和感觉。这是主题的领域。
事实上你可以create a child theme 这将允许您修改站点使用的主题,而无需对父主题进行任何更改。您应该能够应用您在此处所做的所有更改,另外还有一个好处,即在返回到父主题之前,get\\u template\\u part()将自动使用子主题中的文件(如果存在)。