プラグインのインストール・有効化を促す「TGM Plugin Activations」が便利! 相性の良いプラグイン・推奨プラグインは登録しておこう!
これは現在レビュー中のテーマ「ShapeShifter」でも言われたことなのですが、プラグイン領域の機能をどうするかとなった時、機能をプラグイン化し、それを推奨する形となりましたが、その方法として推奨されたのが「TGM Plugin Activation」でした。
テーマだけでなくプラグインでも使えるはずですので、推奨・必要なプラグインのインストール・有効化を促してみませんか?
使い方も簡単なんですよ。
使い方も先に紹介しますので、使ってみたい場合はリンク先でダウンロードしてみてください。
「TGM Plugin Activation」の使い方
まずはリンク先でダウンロードしたZIPファイルを展開して、実装したいテーマ・プラグインのディレクトリに配置してください。
次にテーマなら「functions.php」から読まれるファイルに、プラグインならどこにでも構いませんので、「class-tgm-plugin-activation.php」をインクルードします。
次にアクションフック「tgmpa_register」で必要な処理(関数「tgmpa」のコール)をする関数を呼び出すようにし、関数を定義します。
require_once get_template_directory() . '/3rds/TGM-Plugin-Activation-2.5.2/class-tgm-plugin-activation.php'; add_action( 'tgmpa_register', 'shapeshifter_register_required_plugins' ); function shapeshifter_register_required_plugins() { /* * Array of plugin arrays. Required keys are name and slug. * If the source is NOT from the .org repo, then source is also required. */ $plugins = array( // This is an example of how to include a plugin bundled with a theme. array( 'name' => 'プラグイン名', // The plugin name. 'slug' => 'プラグインスラッグ', // The plugin slug (typically the folder name). 'required' => false, // 推奨の場合は「false」に ), ); /* * Array of configuration settings. Amend each line as needed. * * TGMPA will start providing localized text strings soon. If you already have translations of our standard * strings available, please help us make TGMPA even better by giving us access to these translations or by * sending in a pull-request with .po file(s) with the translations. * * Only uncomment the strings in the config array if you want to customize the strings. */ $config = array( 'id' => 'この関数で設定するためのID', // Unique ID for hashing notices for multiple instances of TGMPA. 'default_path' => '', // Default absolute path to bundled plugins. 'menu' => 'tgmpa-install-plugins', // Menu slug. 'has_notices' => true, // Show admin notices or not. 'dismissable' => true, // If false, a user cannot dismiss the nag message. 'dismiss_msg' => '', // If 'dismissable' is false, this message will be output at top of nag. 'is_automatic' => false, // Automatically activate plugins after installation or not. 'message' => '', // Message to output right before the plugins table. ); tgmpa( $plugins, $config ); }
一応上のコードでも大丈夫だと思われますが、パッケージには使用例となるコードが書かれたファイルも含まれていますので、そちらを参照するほうが良いと思います。例えば、公式リポジトリからインストールできるプラグインであれば、上記の方法で大丈夫ですが、その他のリポジトリのURLを指定してインストールするためのコード例も載っていますから。
また、僕はテーマ「ShapeShifter」用に表示されるテキストを和訳して実装したのですが、基本的には翻訳されていませんのでご注意を。「$config」のインデックス「string」の配列を設定する必要有りです。
当然複数のプラグインを対象にして設定することも可能ですから、これ1つでまとめて環境を整えることを促すことが出来るんですよ。
公式リポジトリにアップロードするテーマでも使用可能
これは僕にとっては非常に有難い機能でしたが、いくつか制限があるようです。
「TGM Plugin Activation」の使用用途とは関係なく、テーマ用の公式リポジトリを利用する際に気を付けるべき点ですので、それを考慮に入れない場合は気にしなくても大丈夫です。
注意点
公式リポジトリ利用のテーマに使用するにあたり、幾つか注意点があります。
まず、プロパティ「require」の値を「false」にする必要があることです。公式リポジトリを利用する際にプラグインを推奨することは、レビュアーもおっしゃっていましたが、ルール違反ではないそうですが、ただ、プラグインを義務付けるような形はアウトです。
つまり、テーマはスキンのような役割が第一に考えられますので、テーマではなくプラグインに依存しているというのは、公式リポジトリ利用するには相応しくないと言った感じなんでしょう。
また、これは他のテーマのレビューを見た時に気付いたことなのですが、複数のプラグインを推奨する場合、その数が多いと注意を受けるようです。多いと言っても、僕が見たテーマでは4つ推奨している時点で多過ぎると指摘されていましたので、2つ程度が限度なんでしょう。
まぁ公式リポジトリを使用したプラグインでなくても良いのかもしれませんが、アップデートにはこちらの方が便利ですし、プラグインの方はアップロードにそれほど厳しいルールがあるわけではないようですからハードルも高くありませんので、僕は公式リポジトリにアップロードしたプラグインが良いと思います。
他の紹介をしたい場合は、別の形でプラグインを推奨するようなダッシュボードウィジェットを追加したり、案内用のページをプラグイン側から用意すれば良いんだと思います。
プラグインに実装する場合
僕としてはあまり使うことを考えていないのですが、特定のプラグインに依存するプラグインを作成する場合、特定のプラグインをインストールする際に同時に有効化するような設定もありますので、依存関係をしっかり確保するための手段として非常に使いやすいと思いますよ。
僕は特定のプラグインに依存するようなプラグインを作成したことはありませんので、どこまでできるのかは実体験が無いのでなんとも言えないんですけどね。
ただ、そういうものを作る際は一度手法の一つとして考えてみてください。助けになることを祈っております。