MU插件导致整个站点崩溃

时间:2019-05-20 作者:Peter Kirwan

我想我可能在做一些愚蠢的事。每次我尝试将其作为mu插件包含时,它都会关闭测试站点。

<?php
if( is_plugin_active( \'/public_html/wp-content/plugins/wordfence.php\' ) ) {
    require_once(\'wp-load.php\');
    $to = ‘[email protected]’;
    $subject = ‘Wordfence is down’;
    $message = ‘Wordfence is not active’;
    $headers = array(\'Content-Type: text/html; charset=UTF-8\');
    wp_mail( $to, $subject, $message, $headers );
}
如果您有任何我出错的想法,我们将不胜感激:)

2 个回复
最合适的回答,由SO网友:Rup 整理而成

is_plugin_active 不可供mu插件使用。法典说:

注:在wp admin/INCLUDE/plugin中定义。php,因此这只能从admin页面中获得,对该函数的任何引用都必须连接到admin\\u init或更高的操作。如果您想在模板或必用插件中使用此功能,则需要手动要求插件。php,下面是一个示例。

无论如何,我认为一定有更好的方法来解决这个问题:您的代码将尝试为每个到站点的非静态HTTP请求发送一封电子邮件,您可能是指!is_plugin_activeis_plugin_inactive, 在任何情况下,这些都接受插件文件的相对路径,而不是绝对路径。

SO网友:MikeNGarrett

最好打开WP_DEBUG 看看你到底面临什么问题。上面的代码包含一些奇特的引号,如 并且不包括到的完整路径wp-load.php.

相关推荐

Mu-plugins文件夹在多站点安装中是如何工作的?

我对什么时候应该将插件文件放入mu插件有点困惑。我知道它必须使用插件,而且我知道它们是自动启用的。但是,在网络设置中,这是否会强制在所有子博客中启用插件文件?这是有道理的,那么这是我唯一一次应该在网络中放置插件文件吗?我什么时候希望插件代码在每个子博客中运行?例如,如果我想自动设置一个新的缩略图大小,我应该在那里这样做吗?或者还有其他例子吗。那么网络激活呢?