是否可以更换get_template_directory()
在我孩子的功能中。php文件?
我要更改文件:
/**
* Load Custom Post types file.
*/
require get_template_directory() . \'/inc/post-types.php\';
很明显,我希望在更新主题时不要覆盖我的作品,那么我可以取消注册父文件,然后在我孩子的函数文件中重新注册我孩子的文件吗?是否可以更换get_template_directory()
在我孩子的功能中。php文件?
我要更改文件:
/**
* Load Custom Post types file.
*/
require get_template_directory() . \'/inc/post-types.php\';
很明显,我希望在更新主题时不要覆盖我的作品,那么我可以取消注册父文件,然后在我孩子的函数文件中重新注册我孩子的文件吗?回答较晚,但在Wordpress 4.7中引入了两个新功能来解决此问题。
get_theme_file_path()
(用于绝对文件路径)和get_theme_file_uri()
(对于URL)的工作方式如下get_template_part()
因为他们将首先自动在子主题中查找该文件,然后回退到父主题。
在您的示例中,可以使用4.7将其重写为如下所示:
/**
* Load Custom Post types file.
*/
require get_theme_file_path( \'inc/post-types.php\' );
更多信息请参见:https://make.wordpress.org/core/2016/09/09/new-functions-hooks-and-behaviour-for-theme-developers-in-wordpress-4-7/您需要使用get_stylesheet_directory_uri()
而不是get_template_directory()
在您的孩子主题中。
来自WordPress codex:
在使用子主题的情况下,将返回父主题目录URI。get\\u template\\u directory\\u uri()应用于不打算包含在子主题中或被子主题覆盖的资源。使用get\\u stylesheet\\u directory\\u uri()来包含打算包含在子主题中/由子主题覆盖的资源。如果正在使用子主题,此函数将返回子主题目录URI。使用get\\u template\\u directory\\u uri()避免被子主题覆盖。联系表单7最近推出了一个更新,导致其他插件出现一些冲突。WPCF7的作者解释说,这是因为插件包括对wp-admin/admin.php 在他们的脚本中,你不应该在插件中这样做。Takayuki Miyoshi 解释它here 但我不确定我是否完全理解为什么这会引起任何问题,或者这与打电话给say有什么不同wp-load.php.有人能解释一下为什么建议不要加载wp-admin/admin.php 在你的插件中,它是如何引起问题的?