通过php激活单个插件

时间:2017-06-09 作者:Alex

好的,我知道以前有人问过这个问题,但我想知道我能做到这一点的最有效和最干净的方法。

我所拥有的是通过serverpilot自动提供的,它在digital ocean服务器上为客户端安装WordPress
我遇到的问题是:
我想激活一个插件,在客户端第一次使用WordPress时帮助他。我遇到的问题是,一旦脚本将文件添加到插件目录,我就无法让脚本访问他们的DB来激活插件。我想通过PHP激活插件。到目前为止,这个解决方案看起来不错,但我想知道这是否是激活我正在放入插件目录的插件的最简单和最干净的方法

function MY_toggle_plugins() {
    include_once( ABSPATH . \'wp-admin/includes/plugin.php\' );
    $temp_files1 = glob(WP_PLUGIN_DIR.\'/*\'); 
    $activated=array();
    $already_active=array();
    foreach($temp_files1 as $file1){
        if(is_dir($file1)) { 
            $temp_files2 = glob($file1 . \'/*\');
            foreach($temp_files2 as $file2){
                if(is_file($file2) && stripos(file_get_contents($file2),\'Plugin Name:\')!==false) { 
                    $plugin_name_full=basename(dirname($file2)).\'/\'.basename($file2);
                    if(is_plugin_active($plugin_name_full)) {
                        array_push($already_active, $plugin_name_full); 
                        //deactivate_plugins($plugin_name_full);
                    }
                    else{
                        array_push($activated, $plugin_name_full);
                        //activate_plugin($plugin_name_full);
                    }
                }

            }
        }
    }
    echo \'You have activated these plugins:<br/><br/>\'.serialize($activated).\'<br/><br/>These were already active:<br/><br/>\'.serialize($already_active); exit;
} 
//execute
MY_toggle_plugins(); 

1 个回复
SO网友:Morgan Estes

如果您已经在初始设置中安装了插件,则可以在中为其添加加载程序mu-plugins 这会激活它。

必须使用插件本身不需要激活,因此添加对activate_plugin() 在里面,它会尝试在每次加载时自动激活你的插件。如果您想停用插件,这将成为一个问题,因为它只会在下一个页面加载时重新激活,但解决方法之一是删除必须使用的插件以启用停用另一个插件。

结束

相关推荐

在index.php上发布摘录下的外部链接按钮

我正在创建一个评论网站,目前我在主索引页上有我的文章摘录。我想知道是否有人知道一种方法,我可以在索引页的每个帖子摘录的底部添加一个链接(最好是一个按钮),在这个链接中,浏览者可以直接进入我正在查看的网站,而不必阅读帖子?我希望帖子标题可以转到我的文章,但底部有一个按钮可以转到正在评论的网站,上面写着“转到网站”例如:站点1名称:查看此处的摘要。。。阅读更多站点1的外部链接(作为按钮)。站点2名称:评论在此处发布摘录。。。阅读更多站点2的外部链接(作为按钮)</如果可以通过插件完成,那么我同意。我也可