是否可以通过AJAX将函数绑定到筛选器挂钩?

时间:2019-06-14 作者:AmintaCode

我试图通过Ajax将函数绑定到过滤器挂钩,如下所示:

 function ajax_called_function_contains() {
    add_filter( \'wp_handle_upload\', \'save_landscaped_version_of_img\' );
 };
目标是调用wp_handle_upload 只有在我单击给定字段上的“添加图像按钮”时,才能save_landscaped_version_of_img 函数触发器打开wp_handle_upload 钩住但only after I\'ve clicked the "add image button" on that given field.

1 个回复
最合适的回答,由SO网友:Tom J Nowell 整理而成

是否可以通过Ajax将函数绑定到过滤器挂钩?

No, because page requests are self contained.

当您从PHP请求某些内容时,所有内容都会从全新的状态中加载。在请求结束时,该板岩将被丢弃。

这与始终运行的节点应用程序不同。

因此,如果您发出一个AJAX请求并取消挂钩一个过滤器,那么它只会针对该请求取消挂钩。第二个页面加载或AJAX请求不会受到取消挂钩的影响,因此需要对每个请求都执行此操作。

如果希望在请求之间持久化某些内容,则需要将其存储在持久化的位置,例如文件系统的数据库。无论哪种方式,您想要做的都不会起作用,而且您对WordPress或PHP所做的任何更改都不会让它按照您所建议的方式工作。

相关推荐

函数的AJAX调用包含未加载的Java脚本(插件开发)

我写了一个插件,它在后端有一个用户管理页面。此页面通过AJAX调用从数据库加载用户数据。此函数返回的数据确实包含对javascript库进行类引用的HTML。对于我的usermanagement页面,我已将所有必需的javascript库排队,但它们无法处理AJAX调用加载的数据:functions.php... if ( $_GET[\'page\'] == \'test_usermanagement\' ) { wp_register_script(\'usermanag