PHP - 覆盖现有函数

2022-08-30 22:08:24

是否可以重新声明具有相同名称但代码不同的现有函数?或者以某种方式“禁用”旧功能?

我想重新定义一个核心WordPress函数,但是由于插件和主题经常调用此函数,因此我需要保持相同的函数名称。


答案 1

您可以使用WordPress钩子(称为过滤器和操作),然后使用该函数覆盖您正在使用的函数。add_filter()

function function_name() {
 //code goes here
}

$hook = 'get_options'; // the function name you're filtering
add_filter( $hook, 'function_name' );

《食典》将在这方面提供很大帮助。

http://codex.wordpress.org/Plugin_API/Filter_Reference


答案 2

只有当您使用类似APD的东西来扩展zend引擎以允许这样做时:

介绍

覆盖方法文档

注意:Runkit似乎是比APD更好的选择,因为它更特定于此目的,并且允许您在不同的地址保持原始方法不变。


推荐