我可以使用现有插件中的方法作为操作挂钩吗?

时间:2018-01-08 作者:Anna Villani

我想使用插件中的方法作为挂钩,而不是回调。我想使用我编写的自定义函数作为回调函数,当插件中的特定方法运行时会触发该回调函数。本质上类似于:

add_action( array( "NAME OF CLASS", NAME OF METHOD" ), "MY CUSTOM FUNCTION" ) )
我不知道该怎么做,任何帮助或指导都将不胜感激!

我已经验证了函数中存在的方法和类。使用方法\\u exists()函数的php。

编辑:

我正在使用名为Groups和Groups\\u File\\u Access的插件来处理我网站上的文件访问和下载。该类是“Groups\\u File\\u Access”,其中的方法是“Groups\\u File\\u served”。我没有编写此插件。当有人访问文件时会触发该方法,我想在通过挂接调用“Groups\\u File\\u served”时运行自定义函数。我试图避免编辑插件本身,但看起来我需要这样做。

2 个回复
SO网友:Scruffy Paws

听起来你在找do_action() 在您编写的方法中添加do\\u操作,它将触发新的自定义操作。然后您可以使用add_action() 与使用内置操作的方式相同。

https://developer.wordpress.org/reference/functions/do_action/

类中的方法示例。。。

public function some_method() {
    $foo = \'puppy\';
    $bar = \'bunny\';
    do_action( \'my_nifty_action\', $foo, $bar );
}
然后,您可以在其他地方将呼叫添加到您的操作中。。。

add_action( \'my_nifty_action\', \'my_custom_function\', 10, 2 );

function my_custom_function( $foo, $bar ) {
    // ... your code here
}

SO网友:Tom J Nowell

那么您想在另一个函数运行时运行代码?

不可以。操作/筛选器无法做到这一点。为了让它工作,该函数需要启动一个可以钩住的钩子/过滤器。如果它不能做到这一点,那么您将不得不派生插件

结束

相关推荐

WordPress Plugins won't save

我有一个WordPress网站,我刚刚接管了一个客户,因此我没有能力与以前的网站管理员/开发人员交谈。该网站使用的是YOOtheme对Subway稍加修改的版本。为了更新插件位置,Subway的一部分有“小部件选项”。我无法更改外观或小部件显示的页面,因为我无法保存任何内容。它看起来像已保存,但没有保存,或者您会在保存按钮旁边看到“加载循环”,它一直在运行。Things to note:<WordPress和插件是最新的。在我们转移到新服务器之前,插件是可更新的。新服务器有一个max\\u inpu