替换子主题中的函数

时间:2012-11-20 作者:Avionicom

有没有办法用子主题中的另一个函数替换一个函数?换句话说,在主题中有一个名为“theme\\u function”的函数,该函数由主题中的多个文件调用
如果存在,我想找到一个操作,用子主题内的另一个函数“child\\u function”替换所有出现的“theme\\u function”。请注意,我要替换的“theme\\u function”没有以下块:

if ( !function_exists(\'theme_function\') ) :  
因为如果是这种情况,很容易用函数中具有相同名称的另一个函数替换theme\\u函数。php

1 个回复
最合适的回答,由SO网友:Chip Bennett 整理而成

如果所讨论的父主题函数不是可插入的(即包装在if( ! function_exists( $function ) ) 有条件的)或可筛选的(即返回其包装在apply_filters( $filtername, $output )), 那么就没有简单的方法来重写这个函数。

您必须执行以下操作之一:

替换包含函数调用实例的所有模板文件,并将这些调用替换为您自己的子主题函数,在所有此类模板中修改父主题,以删除(或使其可插入)有问题的函数

结束

相关推荐

如何在Functions.php中使用PHP手动修复WordPress库代码?

Wordpress为内置的gallery功能输出了一些非常糟糕的代码,这已经被谈论了很多次了。这是负责库输出的核心代码(在/wp-includes/media.php中):function gallery_shortcode($attr) { global $post; static $instance = 0; $instance++; // Allow plugins/themes to override the de