wordpress 删除或编辑WP钩子中的匿名函数

pu3pd22g  于 2022-12-17  发布在  WordPress
关注(0)|答案(1)|浏览(139)

为了处理表单数据,我在elementor钩子中添加了一个匿名函数:

add_action('elementor_pro/forms/new_record', function ($record, $ajaxHandler) { the code... }), 10,2);

它按预期工作,但似乎不能编辑或删除这个功能,现在它的注册!
也许我应该注意到,代码是作为一个XYZ PHP片段添加的,它是通过短代码调用的。我不知道这是否会有什么不同?
我尝试了以下方法:

remove_action('elementor_pro/forms/new_record','elementor_pro/forms/new_record',10);
remove_action('elementor_pro/forms/new_record',function ($record, $ajaxHandler{},10);
remove_all_actions('elementor_pro/forms/new_record');

(the remove_action函数都是用add_action处理程序添加的)。
我也重新启动了PHP,但是初始函数似乎仍然存在。有什么想法吗?这个函数在哪里注册的,我可以从数据库中删除它吗?
我正在运行PHP 7.4版和WP 6.1.1。

mwngjboj

mwngjboj1#

这是尴尬的:(我添加了相同的代码从片段到一个插件之前,我被卷入了别的事情,忘记了这一切。这就是为什么它似乎在删除后仍然存在。而且,我真的不明白这个功能如何工作摆在首位。我还没有深入研究,但AFAI理解你应该只使用WP_HOOK::remove_all_actions或WP_HOOK::remove_all_filters,以删除匿名挂钩函数,如果你决定使用它们。这种方法的警告是,这将删除给定挂钩的所有函数,这就是为什么你可以考虑使用命名函数代替。
感谢hakre的回复。

相关问题