Shifter 移行後の WordPress テーマの GitHub を使ったリリース管理とその適用について試してみた。

# ０．はじめに

AWS EC2 [AMIMOTO](https://ja.amimoto-ami.com/) で [WordPress](https://wordpress.com) サイトを構築してまして…、

ローカルにも [WordPress](https://wordpress.com) 環境が必要になったので、こちらの記事の様に構築したんですが…。

* [LocalbyFlywheel を使って、ローカルに WordPress の開発・検証環境をちょっぱやで構築する。 \- Qiita](https://qiita.com/kusokamayarou/items/0bed127dec8ff0f4c2f4)
    * [GitHub のプライベートリポジトリで管理している WordPress テーマをプラグイン \(WP Pusher\) を使って、インストール/アップデートする。 \- Qiita](https://qiita.com/kusokamayarou/items/85243bc381ae0f08a739)

まぁ、図にするとこんな感じです。

![Qiita_02_1024x640.001.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/161939/8571547e-5c38-c616-dcfb-b781fab1125b.jpeg)

<br>

それで、先日、[WordPress](https://wordpress.com) を [Shifter](https://go.getshifter.io) に移行したんですが、いくつか問題が発生したので、改めて、[Shifter](https://go.getshifter.io) 移行後の [WordPress](https://wordpress.com) テーマの [GitHub](https://github.com) を使ったリリース管理とその適用について、試してみました。

問題としては、

* [WP Pusher](https://wppusher.com/) は、有料プランじゃないとプライベートリポジトリを利用できず。さらにサイト数の制限もあるんですが、[Shifter](https://go.getshifter.io) は [WordPress](https://wordpress.com) を起動するたびに、ドメインやポート番号が変更されるので、起動する度にアクティベートが必要で、さらに [WP Pusher](https://wppusher.com/) に登録された過去のサイトを削除しなければならない。
    * [WordPress Git deployments with WP Pusher](https://wppusher.com/#pricing)
* [WP Pusher](https://wppusher.com/) が、[GitHub](https://github.com) でのリリース管理に対応されていないのかな？？？ [GitHub](https://github.com) をあんまり使ってなかったので、この辺のところをきちんと考えて無かったです…。

<br>

で、

以下の記事の手順通りにやってみました。

* [Shifter Github Plugin/Theme Installer を使って自作テーマ・プラグインをアップデートしよう \#JP\_Getshifter \| Gatespace's Blog](https://gatespace.jp/2019/12/02/shifter-github-plugin-theme-installer-use-sample/)

まぁ、図にするとこんな感じです。

![Qiita_02_1024x640.002.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/161939/2fdf0a22-6535-0f75-dae1-0bb1d7cacf12.jpeg)

# １．[GitHub Actions](https://github.co.jp/features/actions) を設定する。

こちらの記事の手順通りに実施します。

* [Shifter Github Plugin/Theme Installer を使って自作テーマ・プラグインをアップデートしよう \#JP\_Getshifter \| Gatespace's Blog](https://gatespace.jp/2019/12/02/shifter-github-plugin-theme-installer-use-sample/)

# ２．[Shifter](https://go.getshifter.io) で [getshifter/shifter\-github](https://github.com/getshifter/shifter-github) を使って [WordPress](https://wordpress.com) テーマを追加する。

こちらの記事の手順通りに実施します。

* [Shifter Github Plugin/Theme Installer プラグインを公開しました \- 株式会社デジタルキューブ](https://www.digitalcube.jp/shifter/10479/)
    * ※ [getshifter/shifter\-github](https://github.com/getshifter/shifter-github) プラグインは、 [Shifter](https://go.getshifter.io) にデフォルトでインストールされています。

# ３．[Local by Flywheel](https://localwp.com/) に [getshifter/shifter\-github](https://github.com/getshifter/shifter-github) をインストールして [WordPress](https://wordpress.com) テーマを追加する。

1. [Releases · getshifter/shifter\-github](https://github.com/getshifter/shifter-github/releases) にアクセスし、最新の shifter-github.zip をダウンロードします。
    * ![FireShot Capture 385 - Releases · getshifter_shifter-github - github.com.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/161939/376fd92e-87a7-2620-046b-5d1abeb0c7a8.png)
2. 以下の記事を参考に、ダウンロードした ZIP ファイルを手動でインストールします。
    * [ZIP形式で配布されているプラグインの取得と手動インストール \- WordPressの使い方](https://www.adminweb.jp/wordpress/plugin/index2.html#section2)
3. テーマを追加する手順は、[Shifter](https://go.getshifter.io) と同じです。

こちらの記事の手順通りに実施します。

* [Shifter Github Plugin/Theme Installer プラグインを公開しました \- 株式会社デジタルキューブ](https://www.digitalcube.jp/shifter/10479/)

# ９９．ハマりポイント

* 今回は、結構ハマりました…。

* まず [getshifter/shifter\-github](https://github.com/getshifter/shifter-github) プラグインの前提条件があるので、そこを理解していなかったので、気軽に試してみようかなぁと思って、やってみても動かなくて…、かなり時間を取られました。[GitHub Actions](https://github.co.jp/features/actions) の設定をして、リリースを発行しておくと大丈夫なんですが…。前提条件は、以下。
    * 一つ以上リリースが発行されていること。
    * リリースにリリースパッケージが、添付されていること。 ※ ZIP ファイルは、[リポジトリ名].zip

* 後、ローカルの [WordPress](https://wordpress.com) に [getshifter/shifter\-github](https://github.com/getshifter/shifter-github) プラグインのインストールには、リリースバージョンの ZIP ファイルを使用する必要があったんですが、master の ZIP ファイルを使用してしまって、正常に動作しなくて…、これも非常に時間を取られました。

* 最後は、ローカルの [WordPress](https://wordpress.com) に [getshifter/shifter\-github](https://github.com/getshifter/shifter-github) プラグインを使って、独自の [WordPress](https://wordpress.com) テーマをインストールしようとしても、全然インストール出来なくて、非常に時間を取られました。原因としては、ネットワークや PC の性能とファイイルサイズが影響していると思うんですが、テーマの ZIP ファイルのダウンロードのタイムアウトが発生していたせいでした。因みに、この問題を解決するには、ダウンロードしたプラグインのコードを修正する必要があります。
    1. ダウンロードした ZIP ファイルを一度解凍します。
    1. `shifter-github/inc/class-gh-auto-updater-base.php` をエディタ で開きます。
    1. 以下の修正をします。

        ```php
        private function remote_get( $url, $cache = true )
        {
            $transient_key = 'GH_Auto_Updater::'.$url;
            if ( ! $cache || false === ( $res = get_transient( $transient_key ) ) ) {
                //$res = wp_remote_get( $url );
                $res = wp_remote_get( $url, array('timeout' => 60) ); // タイムアウト60秒
                if ( $cache ) {
                    set_transient( $transient_key, $res, 5 * MINUTE_IN_SECONDS );
                }
            }
```
    1. 改めて、shifter-github を ZIP ファイルへ圧縮します。

# ＸＸ．まとめ

今回は、[Shifter](https://go.getshifter.io) の [サポート](https://support.getshifter.io) の方々に非常にお世話になりました。

この場を借りて、

どうもありがとうございました !!!

😭😭😭

そのまま参考にさせてもらった２つの記事も [サポート](https://support.getshifter.io) の方々の記事ですね。

こうやって、手順をまとめて下ささると、非常にありがたいですよね。

感謝 ♪♪♪

🙇‍♂️🙇‍♂️🙇‍♂️

以上、ご参考になれば ♪♪♪

👋👋👋