“不需要”功能

用户名

我的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' ); ?>

更改父文件很容易,但是我不想触碰父文件,因此我只想覆盖该函数并将其更改为新的/固定的函数。

彼得·古森(Pieter Goosen)

您不能删除函数,也不能重新声明它们,因为这将导致致命错误。

不幸的是,您没有提供有关您的问题的更多信息,因此我无法为您提供确切的解决方案。基于此,针对此问题有三种解决方案

解决方案1

这是最快,最简单的解决方案,但要基于以下事实:父主题的功能应该包装在以下条件中:

if ( !function_exists( 'NAME_OF_FUNCTION' ) )

在这种情况下,您可以直接将父函数复制到子主题,而无需使用条件语句,进行更改并做好准备。这是您唯一可以重新声明与上述条件相同的功能的方法,请首先检查子主题中是否存在具有相同名称的功能,如果存在,则仅忽略并跳过父功能。

解决方案2

这也是非常快速和容易的,并且依赖于过滤器。如果父主题具有内置过滤器,则可以通过提供的过滤器简单地更改功能。在您的子主题中,您可以简单地创建一个函数来更改过滤器,然后将其挂接到相应的过滤器以更改函数的输出

解决方案3

这是不满足上述条件的努力解决方案。这是您的最后也是唯一的方法。

您在这里应该做的是

  • 将要修改的父函数复制到您的子主题,然后将该函数重命名为适合您的唯一名称

  • 根据需要修改此功能并确保其安全

  • 现在,您需要将受影响的模板复制到您的子主题中single.php

  • 在这些模板中,您将需要用新创建的函数替换旧函数的所有实例,并确保它们的安全。

现在,Wordpress将在子主题(如果是子主题)中加载模板,single.php而不是父模板。这将确保页面加载有新的修改功能

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章