Produced by Fourier

WordPressの非公開プラグイン管理(GitとComposer)

Sena Sena カレンダーアイコン 2022.05.16

WordPress を採用したサイト構築を行っていると、公開されているプラグインでは機能過多であったり、痒いところに手が届かなかったりする経験はないでしょうか? 結果、お手製の非公開プラグインを開発することがあると思います。

この社内独自の非公開プラグインを、どうやって社内の別プロジェクトで共有管理するか。方法はいくつかありますが、 今回は、 GitComposer を利用してプラグイン管理する方法を記事にまとめます。

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

Composerが認識するバージョンタグについては以下を参照

A Dependency Manager for PHP

https://getcomposer.org/doc/articles/versions.md#vcs-tags-and-branches

以上で、お手製プラグインの 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.*

以上で、 GitComposer を利用した WordPress プラグイン管理が完了です。 一見、手順が煩雑であったり手間がかかるように思えますが、社内チームでプラグイン開発や共有する上で、非常に便利になると思いますので、是非試してみてください。

Sena

Sena slash forward icon Engineer

生涯に亘り技術を極めていきたい。

関連記事