WordPressテーマへのプラグイン導入を促す TGM Plugin Activation
スポンサーリンク
WordPress.orgにWelcart用テーマを申請する過程で、色々と問題を指摘されたそもそも論として、「プラグインがないと動かないテーマは認められない」ということがありました。
チェックして下さった方とのテーマレビューのコメントのやり取りの中で、「特定のプラグイン用のテーマなら、これを使ってみたら」とアドバイス頂いたのがTGM Plugin Activationです。
ライセンスはGPL2.0。テキストドメインにも対応されているので、自分で言語ファイルを用意すれば英語以外での表示も可能です。
TGM Plugin Activationとは
テーマ内に設置しておくと、WordPressのテーマを有効化した時に「このテーマは○○というプラグインのインストールを必須としています(or 推奨しています)」、またはインストールされても有効化されていなければ「以下の推奨プラグインは有効化されていません」と表示して、ユーザーにプラグインのインストールを促す表示を出してくれる、PHPライブラリ。
※ライブラリ=ユーザーは簡単な設定をするだけで複雑な処理が出来る、予め必要な処理をまとめたプログラム。当サイトで紹介しているjQueryのプラグインなどもその一種ですが、プログラマーじゃない私のようなぺーぺーには大変有難い存在。
インストールを促す文言はWordPressのダッシュボード上に表示されます。
標準では英語ですが、テキストドメインで書かれているので、表示の日本語化ももちろん可能です。
※テキストドメインについて詳しくは「自作WordPressテーマの国際化(翻訳)の方法」参照。
設定出来る内容は、例えば「プラグインのインストールを必須にするか推奨にするか」「プラグインはWordPress.orgに登録済みのものか、登録外のもの(URLを指定)か」「インストール後は自動で有効化するのかしないのか」等、かなり柔軟に対応可能となっています。
これら設定はfunctions.phpにコードを書く(見本があるのでコピペして書き換える)だけです。簡単ですね。
TGM Plugin Activationのテーマへの導入方法
- 公式サイトからTMG Plugin Activationをダウンロード
- ダウンロードフォルダから、class-tgm-plugin-activation.phpをテーマ内にコピー
- example.php(または公式サイト)から、functions.phpにコードをコピー&ペースト、必要項目を変更・追加、不要項目は削除。
公式サイト(英語)にも詳しく書いてあります。ここでは3の部分を日本語で解説したいと思います。
TGM Plugin Activationの設定(functions.php)
1. TGMPAの読み込み
最初の3つのコードで、class-tgm-plugin-activation.phpの読み込みと、アクションフックを設定。
require_once dirname( __FILE__ ) . '/class-tgm-plugin-activation.php'; add_action( 'tgmpa_register', 'my_theme_register_required_plugins' ); function my_theme_register_required_plugins() { //以下略
ポイントはその下の部分の、$plugins= array以下になります。
2. プラグインの設定
例えば、プラグインをテーマに同梱する場合の例としては以下のコード例が書かれています。
array( 'name' => 'TGM Example Plugin', // The plugin name. 'slug' => 'tgm-example-plugin', // The plugin slug (typically the folder name). 'source' => get_stylesheet_directory() . '/lib/plugins/tgm-example-plugin.zip', // The plugin source. 'required' => true, // If false, the plugin is only 'recommended' instead of required. 'version' => '', // E.g. 1.0.0. If set, the active plugin must be this version or higher. 'force_activation' => false, // If true, plugin is activated upon theme activation and cannot be deactivated until theme switch. 'force_deactivation' => false, // If true, plugin is deactivated upon theme switch, useful for theme-specific plugins. 'external_url' => '', // If set, overrides default API URL and points to an external URL. ),
TGMPA公式サイトにもあるように、基本的には以下の4つを変更することによりカスタマイズが出来ます。
name | プラグイン名 |
---|---|
slug | プラグインフォルダ名 |
required | trueで「必須」、falseで「推奨」 |
source | WordPress公式プラグインディレクトリ以外からインストールする場合のプラグインの場所 |
加えて、以下のオプションが設定可能です。
version | 動作可能なプラグインの最低バージョン |
---|---|
force_activation | trueでテーマが有効な時はプラグインが強制的に有効化される。他テーマにすること以外ではプラグインを停止出来ない。 |
force_deactivation | trueでテーマが他テーマに変更された場合に、プラグインを強制的に停止させる。 |
external_url | プラグインの外部リンク。設定した場合はこちらが参照される。 |
公式サイトの例では、これ以外に「WordPress非公式のプラグインをインストールする場合」「WordPress公式ディレクトリからプラグインをダウンロードする場合」の例が続けて書かれていますので、参考にして下さい。
例えば私が作ったWelcart用のテーマであれば、WelcartプラグインはWordPressの公式プラグインディレクトリからインストール出来ますので、以下のようになります。
'name' => 'Welcar e-Commerce', //プラグイン名 'slug' => 'usc-e-shop', //プラグインフォルダ名 'required' => false,//「推奨」表示
3. インストール時の動作・表示等の設定
$config = array以下では、インストール時に自動的に有効化させるかどうかや、画面に表示させる文言を設定出来ます。
default_path | 同梱プラグインフォルダへの絶対パス |
---|---|
menu | ダッシュボード内での、必須・推奨プラグインインストール用のページスラッグ。 |
has_notices | trueで「このテーマは以下のプラグインを必須(推奨)にしています」を表示 |
dismissable | trueで「このテーマは以下のプラグインを・・・」表示をユーザーが無視する選択肢を出せる |
dismiss_msg | dismissableをtrueとした場合に表示させるメッセージ |
is_automatic | trueでプラグインインストール後に自動的に有効化される |
message | プラグインのインストールページで、プラグイン表の直前に表示する文言 |
strings | array内の設定で、インストール中や完了時等の文言を設定 |
文言は全てテキストドメインになっているので、言語ファイルを用意すれば日本語化も大丈夫です。
まとめ
TGM Plugin ActivationはWelcartに限らず、自分以外の人の使用が想定されるテーマを「プラグインありき」で制作している場合は非常に役立つライブラリです。
例えばWeb屋さんであれば、テーマを納品する際にクライアントがプラグインをインストール・有効化する手間を省くことが出来ます。
今回私がWordPress.orgに申請したWelcart用テーマでは、最終的には「Welcartなしでも動くテーマ」に作り変えたため、設定は「推奨」にしました。
このライブラリを取り入れているテーマもいくつかWordPress公式テーマディレクトリにあるので、使い方については色々参照してみて下さい。