Que*_*o27 7 php wordpress wordpress-theming parent-child require
我是设计和编码Wordpress主题的新手,最近开始了一个基于悉尼主题的儿童主题,该主题在Wordpress中免费提供.我遇到了一些障碍我无法解决.
有一个PHP文件通过父级调用functions.php,我需要自定义,并且在更新父主题时需要不受影响.此文件被调用template-tags.php,位于"inc"文件夹中.现在,据说,根据Wordpress codex(我在此之前询问过),子主题上的任何重复文件(除了functions.php)都将自动覆盖父主题中的那些.我不知道这对于文件夹内的文件是否也能正常工作,但我认为这个特定文件在父文件中调用的事实functions.php使得它是正在加载的父文件.我假设这是因为同样适用于我必须在子主题中排队的样式CSS和JS脚本文件,以便获得我自己的自定义版本.
但是,Wordpress codex中没有任何内容可以解释如何覆盖已在父代中调用的文件functions.php.而且我在其他地方找不到任何东西(甚至在这些问题中都没有:WordPress子主题覆盖父主题包括,在WordPress中使用Child主题覆盖父主题函数,如何从非函数覆盖不可插入的父主题函数. php文件?,Wordpress子主题 -  functions.php副本 - 不能"重新声明")这对我有帮助.
所以,总结一下:
template-tags.php.template-tags.php.父主题functions.php具有以下代码来调用其文件:
require get_template_directory() . '/inc/template-tags.php';
Run Code Online (Sandbox Code Playgroud)我尝试在我的孩子的functions.php文件中添加调用其template-tags.php文件的任何内容都会导致错误,因为很明显WP不能同样需要两次.
没有评论父母的电话functions.php,这对我来说似乎不是一个实际的解决方案,而是更多的解决办法,我不知道还有什么可做的.
我很感激此时的任何意见.提前致谢!
小智 11
你好@TyerserNo27,
你提出这个问题已经有很长一段时间了,但是在我遇到同样的问题时,我也一直在寻找2天的答案.有答案,简单如"嗨":
inc子主题中的template-tags.php文件夹或文件.template-tags.php并将其粘贴到你的子主题中.functions.php
在我的情况下,我想function mytheme_posted_on()从我的父母覆盖template-tags.php它现在正在运作.感谢https://wordpress.org/support/topic/inc-folder-in-child-theme(Stephencottontail回答)
小智 4
我遇到了类似的问题,我想更改 template-tags.php 中子主题中的标题布局。
对我有用的解决方案是在我的子主题的functions.php 文件中使用以下行: require get_stylesheet_directory() 。'/inc/template-tags.php';
我使用的是 Functions.php 中 Parent They 的原始行: require get_template_directory() 。'/inc/template-tags.php';
使用函数 get_template_directory() 不起作用,因为该函数将始终返回父主题目录。
使用函数 get_stylesheet_directory() 有效,因为它检索子主题目录。
是的,我知道函数“get_stylesheet_directory()”的名称不是很直观,但它实际上会返回子主题目录位置。
通过网上搜索,花了一段时间才解决这个问题。我在网上找到了这个参考资料,它对我的搜索有帮助:How to override a Parent file in a child Wordpress theme when Parent file is being required in functions.php