【问题标题】:Extend existing class method扩展现有的类方法
【发布时间】:2026-02-16 21:35:01
【问题描述】:

我能以某种方式从插件扩展现有的类方法吗?或者我可以在每次调用方法时监控输出吗?

class greatPlugin{
...
  public function someProcess($vars){

    /* The magic */
    return $stringFromProcess;
  }
...
}

greatPlugin 在加载主题之前由 WordPress 内部的钩子调用,但我需要访问(最好)由someProcess 方法生成的输出数组。例如

$greatSubOutput = array('string1', 'string2');

如果没有调用方法,则直接使用$greatSubOutput = null;

greatPlugin 类过于复杂,无法重建它是原始开发人员完成的出色工作。如果我可以在该函数中添加一些 log2array 功能...

【问题讨论】:

    标签: php wordpress plugins


    【解决方案1】:

    你总是可以扩展整个类,然后像这样扩展方法:

    class loggingGreatPlugin extends greatPlugin 
    {
    
        public function someProcess($vars) {
            $output = parent::someProcess($vars);
    
            $logger = new LogMe();
            $logger->log(LogLevel::INFO, $output);
    
            return $output;
        }
    }
    

    【讨论】: