Ale*_*lex 17 php wordpress function
我可以重新声明具有相同名称但代码不同的现有功能吗?或者以某种方式"禁用"旧功能?
我想重新定义一个核心WordPress函数,但由于插件和主题调用这个函数很多,我需要保持相同的函数名称.
小智 7
您可以使用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
只需注释旧功能并编写新功能;)
在PHP中,本身无法重新定义或重载(即定义具有相同名称但不同参数的函数)函数.虽然有像runkit这样的扩展,允许重新定义函数(runkit_function_redefine),但你可能不想使用这些(这些扩展很少安装,而且大部分都不可靠.)
如果还没有定义另一个相同的名称,你可以将定义原始函数的块包装在条件检查中(我假设你的意思是Wordpress函数,而不是核心PHP函数)
    <?php 
if(!function_exists('function_name')){ 
    //old definition here
    } ?>
然后,您可以重新定义上面的内容,同时仍然保留原始内容,如果您需要回滚它.
根据更改的复杂程度以及执行此操作的次数,如果您使用的是PHP 5 ,则可能还需要查看命名空间.
| 归档时间: | 
 | 
| 查看次数: | 27353 次 | 
| 最近记录: |