【问题标题】:A hook for end each ajax request in WordPress结束 WordPress 中每个 ajax 请求的钩子
【发布时间】:2021-01-25 03:23:14
【问题描述】:

我想为每个请求创建一个自定义 ajax 缓存,这就是为什么我需要在每个 ajax 操作之后执行一个挂钩。

我创建了我的自定义 'ajax.php' 文件,将它放在网站根目录中。还有像这样的愚蠢的代码行:

$action = $_REQUEST['action'] ?? null;
...
if ( is_user_logged_in() ) do_action( 'wp_ajax_' . $action );
else do_action( 'wp_ajax_nopriv_' . $action );
die('TheEnd');

但在每个 ajax 输出后我看不到“TheEnd”。我试图从wp-includes/plugin.php 调试function do_action( $tag, ...$arg ),现在我不知道如何以正确的方式处理它。我尝试创建自定义的“do_action”函数,但在这种情况下,我必须覆盖 WP_Hook 对象,并且它被标记为 final

有什么帮助/想法吗?

【问题讨论】:

    标签: php ajax wordpress caching


    【解决方案1】:

    如果有人遇到类似问题,请参阅下面的心跳控制插件代码。 (我敢肯定,有类似的插件,这对我来说是谷歌的第一个。)

    我试图准备我的自定义解决方案,这就是我问这个问题的原因。但是有现成的 ajax 缓存示例,这里是一个: https://www.cloudways.com/blog/reduce-admin-ajax-php-related-server-load-wordpress/

    所以它帮助我获得了快速的解决方案,并且在源代码中有一些有用的 WP 钩子来解决这个问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-08
      • 2016-08-05
      • 2019-03-24
      • 1970-01-01
      • 2011-07-09
      • 1970-01-01
      • 2016-04-15
      相关资源
      最近更新 更多