禁用cron和AJAX页面上的插件

时间:2016-05-08 作者:Humpty

我想在我的cron和ajax页面上禁用几个wordpress插件。我已经试过了option_active_plugins 过滤器,但它不工作。我查过了,发现大多数人都这么说option_active_plugins 应该行得通,但行不通。

这是我的代码:

add_filter(\'option_active_plugins\', \'test\');

function test($plugins) {
    file_put_contents(__DIR__ . \'/test.txt\', var_export($plugins, true));
    return $plugins;
}
上面的代码应该在我的主题目录中创建一个文件,但这个过滤器没有启动。

请帮忙!

1 个回复
SO网友:Jules

我在Ajax请求中遇到了类似的问题。有几件重要的事情需要注意。

请允许我首先陈述显而易见的:

确保您的代码使用option_active_plugins 过滤器在你的电脑里mu-plugins 文件夹如果你的插件是一个普通的插件,它将不起作用。即使你把它命名为aaaa第一个插件也不行。

现在我面对的问题是:

我的函数是这样写的:

add_filter( \'option_active_plugins\', function ( $wp_enabled_plugins ) {

    // Quit immediately if in admin area.
    if ( is_admin() ) {
      return $wp_enabled_plugins;
    }

    // do other stuff

});
问题是,在执行AJAX调用时,is_admin() 返回true。所以我把它改成:

if ( is_admin() && !DOING_AJAX ) { ... }
现在一切都很好。希望它能帮助别人。