Produced by FOURIER

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

SenaSena calender 2022.5.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



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

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