【问题标题】:Wordpress - admin_init hook being called multiple times?Wordpress - admin_init 钩子被多次调用?
【发布时间】:2015-05-28 15:37:02
【问题描述】:

我在我的 Wordpress 网站上遇到了一个问题,我追踪到 admin_init 被调用了两次。

我尝试停用所有插件,问题就消失了。然后我恢复了每个插件,发现是哪个插件导致了问题。

我的问题是,我怎样才能找到额外的 admin_init 调用的原因?

该插件是为网站定制的,所以我不能简单地用不同的插件替换,而且它是我自己搞混的(脸红了)。

这是我在对该主题进行一些研究后所得到的结果......

我添加了 remove_filter("wp_head", "adjacent_posts_rel_link_wp_head",10); 到functions.php文件(虽然这可能只会停止“init”钩子被调用两次而不是“admin_init”)?

我设置了一个函数,每次调用 admin_init 时都会向我发送一封电子邮件。在生成电子邮件时,我向其中添加了以下代码:

$backtrace = print_r(debug_backtrace(), true);

然后将 $backtrace 添加到电子邮件文本中。

我收到的第一封电子邮件有完整的回溯,显示了导致源自“admin-ajax.php”的 admin_init 调用的所有函数。第二个 admin_init 呼叫电子邮件根本没有任何回溯信息?

我还了解到,多次调用 init(可能是 admin_init 挂钩)可能是由于网站上的图像(或其他包含)返回 404 错误。

我在页面上右键单击并“检查了元素”以打开 Firebug 窗口并查看了选项卡,但我不能 100% 确定如何检查。我没有在任何选项卡下看到任何奇怪或 404 错误,但如果有人能澄清检查程序,我将能够重新检查确定。

那么...关于为什么我会收到这个额外的 admin_init 调用以及我可以在软件中检查哪些内容以查看它是在哪里生成的,还有什么其他想法吗?

谢谢。

【问题讨论】:

  • 我也遇到了 admin_init 在同一个请求中被多次调用。我想知道这是怎么回事。我搜索了 404 错误,发现了这个:stackoverflow.com/questions/4372596/…。我不认为是这样,因为那些 404 请求是新请求。
  • @rosell.dk 您是否在下面的答案中尝试了我的解决方案?这就是我解决问题的方法。
  • 不,我不能,因为有人正在使用我的插件。我的插件无法处理多次调用 admin_init 钩子,因为在我的钩子中定义了一个函数。我解决了这个问题,但想确保不是我的插件导致了多次火灾的不当行为。这是我们的讨论:github.com/rosell-dk/webp-express/issues/186

标签: php jquery wordpress


【解决方案1】:

我现在已经设法解决了这个问题。

我在 wp-config.php 中设置了以下内容: error_reporting(E_ALL); ini_set('display_errors', 1);

这开启了严格的故障报告。

我的网站立即充斥着关于问题的通知。

我系统地检查并修复了每一个问题,然后我原来的问题也消失了。

我不确定确切的修复方法,但无论如何这可能是特定于网站的,所以我想我会发布这个,以防将来对其他人有帮助。

【讨论】:

    猜你喜欢
    • 2013-05-27
    • 2015-01-24
    • 1970-01-01
    • 2017-07-19
    • 2020-08-27
    • 1970-01-01
    • 2020-01-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多