只有在某些情况下。
如果父主题的函数包装在function_exists
然后你应该能够替换它们。例如:
// Parent
if (!function_exists(\'p_wpse_95799\')) {
function p_wpse_95799() {
//
}
}
如果子主题定义了一个名为
p_wpse_95799
则不会使用父函数。如果这是一种可能性,您只需要定义一个不做任何事情的函数,就像上面所说的那样。
如果函数“挂接”到某个筛选器或操作,则可以取消挂接。有一个陷阱。儿童主题functions.php
首先加载,这意味着您可能无法remove filters 直接地你必须钩住它们才能追上父母的functions.php
已运行。否则,您将尝试删除尚未添加的内容。抄本:"It is also worth noting that you may need to prioritise the removal of the filter to a hook that occurs after the filter is added. You cannot successfully remove the filter before it has been added." 大多数情况下,这将意味着找到一个跟踪父对象的钩子functions.php
挂接到那个,可能操纵add_action 或add_filter 导致函数运行延迟。
这些就是我现在能想到的情况。也许我忘了一个案子。我相信有人会指出,如果我有:)
没有PHP级别的“remove function”,如果您尝试用相同的名称定义两个函数,您将得到一个错误。
由于我看不到您要删除的函数的代码,我担心您可能会通过删除或修改它来破坏某些东西。要小心谨慎。