はなゐろぐ

主に技術関係の覚え書きです。

Advanced Custom FieldsをComposerでインストールする

Advanced Custom Fields PROのライセンスプランが来年(2020年)から変更され、買い切りからサブスクリプションになるようです。

ACF | New ACF PRO Pricing for 2020
It’s been a while since we last reviewed our pricing. In fact, you could argue we never have! Our premium plugin journey began back in 2011 with the
ACF | New ACF PRO Pricing for 2020 favicon https://www.advancedcustomfields.com/blog/new-acf-pro-pricing-for-2020/
ACF | New ACF PRO Pricing for 2020

年内に購入したライセンスは来年以降も有効だそうなので、思い切って買いました。100ドルなので1万円くらいかな…と思っていましたが、よく見るとオーストラリアドル(AUD)なので8000円弱ほどでした。これが来年になると年額249ドルになってしまいます…! カスタムブロックで代替できるとはいえ、クラシックエディタを希望されるクライアントさんもまだ多いので、まだカスタムフィールドの需要はありそうです。

で、PRO版はwpackagistなどのリポジトリには置かれていないため、Composerでインストールできません。案件をはじめるたびに毎度コピーするのも面倒なので、なんとかならないものか…と調べたところ、公式フォーラムに似た話題が載っていました。そこで「acf-pro-installer」というそのまんまズバリな名前のパッケージを作られている方がいたのでインストールしようとしました。しかし、メンテナンスされておらずvlucas/phpdotenvの依存関係でインストールできませんでした。issueを確認したところ、別のパッケージを作られている方がいたのでそちらを使いました。

インストール方法

GitHub - ffraenz/private-composer-installer: Composer install helper outsourcing sensitive keys from the package URL into environment variables
Composer install helper outsourcing sensitive keys from the package URL into environment variables - ffraenz/private-composer-installer
GitHub - ffraenz/private-composer-installer: Composer install helper outsourcing sensitive keys from the package URL into environment variables favicon https://github.com/ffraenz/private-composer-installer
GitHub - ffraenz/private-composer-installer: Composer install helper outsourcing sensitive keys from the package URL into environment variables

READMEに書かれているそのまんまなんですが…。

まず、composer.jsonのrepositoriesに下記の項目を追加します。%VERSIONは特に指定しなくてもよいなと思った(公式サイトのダウンロードリンクにもバージョンは指定されてなかった)ので、そこだけ削除してあります。

composer.json
{
  "repositories": [
    {
      "type": "package",
      "package": {
        "name": "advanced-custom-fields/advanced-custom-fields-pro",
        "version": "1.2.3",
        "type": "wordpress-plugin",
        "dist": {
          "type": "zip",
          "url": "https://connect.advancedcustomfields.com/index.php?a=download&p=pro&k={%PLUGIN_ACF_KEY}"
        },
        "require": {
          "ffraenz/private-composer-installer": "^4.0"
        }
      }
    }
  ]
}

次に、.envにライセンスキーを書きます。なければ新規作成します。

PLUGIN_ACF_KEY={購入したライセンスキー}

最後に、composerでPRO版をインストールします。

$ composer require advanced-custom-fields/advanced-custom-fields-pro

以上です!