用于单页加载的Wordpress卸载插件

时间:2017-10-11 18:40:15

标签: php wordpress plugins

我有一些不属于wordpress的自定义页面,但他们通过调用wp_load.php来了解Wordpress主题。我希望能够禁用一些插件,比如点击计数器等,这样他们就不会浪费任何服务器资源在根本没用它们的页面上。

这篇文章介绍了使用代码http://tlsim.github.io/sl-blog-d3/ohlcSemanticZoom.html将其关闭,但这不是我想要做的。我想在网站上启用所有这些功能,对于只接入主题的特定页面,我想禁用某些插件来帮助提高性能。

到目前为止,我唯一的解决办法就是卸载所有的钩子,但我希望能有更清洁的方法来实现它。

1 个答案:

答案 0 :(得分:1)

       A     B    C    D    E    F    G    H    I    J   
   0   1    11    a    XX   50   Nan  Nan  Nan  Nan  Nan
   1   2    12    b    YY   10   Nan  1    Nan  Nan  Nan
   2   1    11    c    ZZ   70   Nan  Nan   11   12   56
   3   6    10    c    DD   45    6    10   c    DD   45
   4   1     7    d    LL   64    1    7    d    LL   64
   5   89   Nan   f    KK   13    89   Nan  f    KK   13

活动插件列表存储为选项' active_plugins'。这可以通过修改get_option的返回值来实现(' active_plugins')。因为,在加载过程中很早就调用了get_option(' active_plugins'),这个过滤器无法安装在普通插件或主题的functions.php中,因为该代码在调用后运行get_option(' active_plugins')。但是,在调用get_option之前必须使用插件(' active_plugins')。

get_option(' active_plugins')的返回值如下所示:

<?php

/*
Plugin Name: Conditional Deactivation of Plugins
*/

/* This must be installed as a must use plugin */

add_filter( 'option_active_plugins', function( $plugins ) {
    return array_filter( $plugins, function( $plugin ) {
        return ! ( *some condition on $_REQUEST* && in_array( $plugin, [ *list of plugins to exclude* ] ) );
    } );
} );