【问题标题】:Can we defer the loading of MU-Plugins in a Wordpress installation我们可以在 Wordpress 安装中延迟加载 MU 插件吗
【发布时间】:2020-07-19 08:27:59
【问题描述】:

我正在使用 WordPress Multisite MU-Plugins 目录来运行一些我需要的自定义功能 可用于我网络中的所有子站点。当我在主站点的functions.php中运行该函数时 文件按预期运行,但显然无法访问任何子站点。

是 WP 使用的加载顺序的问题 - 我读了here 顺序是:

  • WordPress 核心代码
  • mu 插件
  • 插件
  • functions.php
  • 正在显示的特定模板的主题代码

我相信问题可能是我试图调用尚未加载的 wp 函数。有没有办法将'Must-Use'插件的加载推迟到functions.php运行时??

【问题讨论】:

    标签: wordpress multisite


    【解决方案1】:

    您不能推迟加载,不,但您可以将 mu-plugin 中需要加载其他内容的代码移动到操作挂钩中,以便稍后在加载顺序中触发操作:

    • 钩子plugins_loaded在所有插件加载后运行代码
    • 钩子after_setup_theme在主题加载后运行代码
      (我猜这就是你所说的 'functions.php' 的意思?)

    但是我认为所有 WordPress 自己的功能都是在加载 mu-plugins 之前加载的,所以这可能不是你的问题。

    【讨论】:

    • 是的,我怀疑是这样的,我只是想在任何子站点用户上传媒体时向自己(超级管理员)发送电子邮件。因此,我使用 wp 核心函数,例如:get_user_by()get_current_blog_id(),当然还有 wp_mail()。我正在使用一个动作来挂钩 add_attachment 函数
    猜你喜欢
    • 1970-01-01
    • 2018-04-02
    • 2012-04-05
    • 1970-01-01
    • 2019-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多