特定のプラグインを初期導入から有効にする方法

WordPress

最近WordPress案件が増えて、
毎回、プラグインの有効化が面倒くさいので、
よく使うものをインストール前から有効に出来ないかと思い、
なんとなく作ってみました。

ちなみにWordPressでは、
wp-content 配下に mu-plugins というサブディレクトリを作り、
その中にプラグインを入れると、常に有効になります。
※管理画面から無効化することも出来ません。

注意としては、mu-plugins に入れてしまうと、
管理画面上からのアップデートが出来なくなるということです。

配布プラグイン自体をカスタマイズしてしまって、アップデートしたくない場合は、
よいのですが、基本、本体含めプラグインも最新にアップデートした方がよいです。

<?php
/*
Plugin Name: Essential Load Plugin
Plugin URI: 
Description: 必須プラグインを強制的に有効化する
Version: 1.0
Author: rykiel
Author URI: http://blog.cror.net/
*/
new essential_plugin();

class essential_plugin {
    private $essential_plugins = array(
        //有効にしたいプラグインパス
        'wp-multibyte-patch/wp-multibyte-patch.php'
    ,   'tinymce-advanced/tinymce-advanced.php'
    );
    
    public function plugins_enable() {
        //有効済プラグイン取得
        $active_plugins = get_option('active_plugins');
        
        foreach ($this->essential_plugins as $plugin) {
            if (!in_array($essential_plugins, $active_plugins)) {
                //プラグイン強制有効化
                activate_plugin($plugin, '', false, false);
            }
        }
    }
    
    function __construct() {
        add_action('shutdown', array($this, 'plugins_enable'));
    }
}
?>

必須プラグインリストを管理画面で入れるようにしようとかも考えたけど、
インストール前だから管理画面ないやと、プラグインソースに直接書いてます。

「有効にしたいプラグインパス」という所にplugins フォルダ以下からファイル名までを指定します。
複数の場合は、カンマ区切りで、入れて下さい。

参考
http://codex.wordpress.org/Function_Reference/activate_plugin
http://codex.wordpress.org/Plugin_API/Action_Reference

コメント

スポンサーリンク
タイトルとURLをコピーしました