我的WP主题的父函数。
require get_template_directory() . '/inc/template-tags.php';
在该文件中是我要更改的功能。问题是那里还有很多我不想讲的其他功能。我可以将整个文件复制到子主题中,然后取消注册/取消注册该文件。我想知道是否有更简单的方法。
在template-tags.php内部,我要更改其值的函数称为
function web2feel_content_nav( $nav_id ) {
...我想在这里更改的内容
endif; // web2feel_content_nav
它在我的single.php文件中使用
<?php web2feel_content_nav( 'nav-below' ); ?>
更改父文件很容易,但是我不想触碰父文件,因此我只想覆盖该函数并将其更改为新的/固定的函数。
您不能删除函数,也不能重新声明它们,因为这将导致致命错误。
不幸的是,您没有提供有关您的问题的更多信息,因此我无法为您提供确切的解决方案。基于此,针对此问题有三种解决方案
这是最快,最简单的解决方案,但要基于以下事实:父主题的功能应该包装在以下条件中:
if ( !function_exists( 'NAME_OF_FUNCTION' ) )
在这种情况下,您可以直接将父函数复制到子主题,而无需使用条件语句,进行更改并做好准备。这是您唯一可以重新声明与上述条件相同的功能的方法,请首先检查子主题中是否存在具有相同名称的功能,如果存在,则仅忽略并跳过父功能。
这也是非常快速和容易的,并且依赖于过滤器。如果父主题具有内置过滤器,则可以通过提供的过滤器简单地更改功能。在您的子主题中,您可以简单地创建一个函数来更改过滤器,然后将其挂接到相应的过滤器以更改函数的输出
这是不满足上述条件的努力解决方案。这是您的最后也是唯一的方法。
您在这里应该做的是
将要修改的父函数复制到您的子主题,然后将该函数重命名为适合您的唯一名称
根据需要修改此功能并确保其安全
现在,您需要将受影响的模板复制到您的子主题中single.php
。
在这些模板中,您将需要用新创建的函数替换旧函数的所有实例,并确保它们的安全。
现在,Wordpress将在子主题(如果是子主题)中加载模板,single.php
而不是父模板。这将确保页面加载有新的修改功能
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句