WordPressを採用したサイト構築を行っていると、公開されているプラグインでは機能過多であったり、痒いところに手が届かなかったりする経験はないでしょうか? 結果、お手製の非公開プラグインを開発することがあると思います。
この社内独自の非公開プラグインを、どうやって社内の別プロジェクトで共有管理するか。方法はいくつかありますが、 今回は、GitとComposerを利用してプラグイン管理する方法を記事にまとめます。
WordPressのプラグイン作成とGit管理
今回は、例としてfoo-bar-plugin
という名前のプラグインを作ります。
全体のファイル構成
最小限のファイル構成は以下になります。
/foo-bar-plugin
|-- composer.json ・・・プラグイン情報の記述
|-- foo-bar-plugin.php ・・・プラグイン本体
プラグイン本体の用意
foo-bar-plugin.phpは、プラグイン本体のファイルです。例えば以下のように書きます。 WordPressは、wp-content/
の中にあるplugins/
にディレクトリと同名のPHPファイルを配置し、PHPのコメントを適切に書くとプラグインと認識します。
<?php
/**
* Plugin Name: FooBar Plugin
* Version: 1.0.0
* Author: FOURIER Inc.
* Author URI: https://www.fourier.jp/
* Description: テストプラグイン
*/
add_action('init',function() {
// 好きな処理を書く
});
Composerの用意
composer.jsonには以下のように書きます。(require-devはおまけ)
typeに「wordpress-plugin」と記述することで、インストール時の設置先を指定します。(後述)
{
"name": "wpackagist-plugin/foo-bar-plugin",
"description": "テストプラグイン",
"type": "wordpress-plugin",
"license": "proprietary",
"authors": [
{
"name": "FOURIER Inc."
}
],
"require-dev": {
"johnpbloch/wordpress-core": "^5.9.2"
}
}
Gitへの登録
予めGitのリポジトリを作成した後に、foo-bar-plugin
をコミットします。 この際に、バージョンタグを付けておきます。このプラグインのバージョンになります。
git tag 1.0.0
git push origin HEAD --tags
以上で、お手製プラグインのGit管理は完了です。
WordPressプロジェクトにプラグインを導入
それでは、上記で用意したプラグインをインストールしてみましょう。
Composer/installersの用意
Composerのインストール先は通常vendor/
になりますが、それを変更することが出来るライブラリ「composer/installers
」をインストールします。
composer require composer/installers
composer.json の設定
WordPressプロジェクトのcomposer.json
を設定します。
まずは、extra > installer-paths
を指定します。wordpress-plugin
というtypeを指定するファイルは、wp-content/plugins/
に配置されます。
"extra": {
"installer-paths": {
"<WordPressインストール先Path>/wp-content/plugins/{$name}/": [
"type:wordpress-plugin"
]
}
},
次に、repositories
に作成したプラグインを指定します。
"repositories": {
"foo-bar-plugin": {
"type": "vcs",
"url": "<GitのURL>"
}
},
プラグインのインストール
以下のように composer require
を実行することで、インストール完了です。 実際に、wp-content/plugins/
に配置されることが確認できるかと思います。
最新版をインストール
composer require wpackagist-plugin/foo-bar-plugin
バージョン指定する場合
composer require wpackagist-plugin/foo-bar-plugin:1.*
以上で、GitとComposerを利用したWordPressプラグイン管理が完了です。 一見、手順が煩雑であったり手間がかかるように思えますが、社内チームでプラグイン開発や共有する上で、非常に便利になると思いますので、是非試してみてください。
新しいメンバーを募集しています
Sena / Engineer
生涯に亘り技術を極めていきたい。