VCCWではじめるWordpress シリーズWP-CLIでWordpressプラグインをインストールし有効化する
はじめに
前回の記事VCCWでWP-CLI(A command line interface for WordPress)を試すでWP-CLIの参照系コマンドを試しました。今回はプラグインを管理するコマンドを使い、プラグインのインストールと有効化を試します。
環境について
前回と同じくVCCW上でWP-CLIを試します。仮装環境を立ち上げ、SSHでアクセスします。
$ vagrant up
$ vagrant ssh
プラグインを探す
WP-CLIでプラグインを管理するためにはプラグインのslugが必要になります。 プラグインのslugは検索コマンドかPlugin Directoryにある各プラグインのURLを確認します。今回はEmmetプラグインを検索しslugを確認します。
$ wp plugin search emmet
Success: Showing 3 of 3 plugins.
+------------------------+------------------------+--------+
| name | slug | rating |
+------------------------+------------------------+--------+
| WP Emmet | wp-emmet | 100 |
| Post Editor Zen Coding | post-editor-zen-coding | 100 |
| WP Zen-Coding | wp-zen-coding | 100 |
+------------------------+------------------------+--------+
一番上の列にあるWP Emmetが対象のプラグインであり、その横に表示されているwp-emmet
がslugです。
プラグインのインストール
検索で調べたslugをもとにインストールコマンドを実行します。
$ wp plugin install wp-emmet
Installing WP Emmet (0.3.1)
https://downloads.wordpress.org/plugin/wp-emmet.zip からインストールパッケージをダウンロードしています…
パッケージを展開しています…
プラグインをインストールしています…
プラグインのインストールが完了しました。
これでインストールは完了です。Wordpressの管理画面に無効状態のWP Emmetプラグインがあるはずです。
プラグインの一覧
コマンドからもWP Emmetプラグインのインストール状況をチェックしてみます。
$ wp plugin list
+--------------------+----------+-----------+------------+
| name | status | update | version |
+--------------------+----------+-----------+------------+
| akismet | inactive | available | 3.0.2 |
| dynamic-hostname | active | none | 0.4.0 |
| hello | inactive | none | 1.6 |
| plugin-check | active | none | 0.1 |
| theme-check | active | none | 20140929.1 |
| wp-basic-auth | active | none | 1.1.1 |
| wp-emmet | inactive | none | 0.3.1 |
| wp-multibyte-patch | active | none | 2.1.1 |
+--------------------+----------+-----------+------------+
wp-emmetがinactive(不活発)状態でインストールされていることが確認できました。
プラグインの有効化
インストールしたWP Emmetプラグインをコマンドを使い有効化します。
$ wp plugin activate wp-emmet
Success: Plugin 'wp-emmet' activated.
管理画面で操作せずにプラグインを有効化できました。
シェルを使ったプラグインの一括インストールと有効化
1つずつインストールして有効化するのは非効率なので、シェルを使って一括インストールと有効化を試してみます。今回は簡易的なのでシェルで試しますが、Chef等を使うことでよりInfrastructure as Codeになるんじゃないでしょうか(Chefも近々勉強する)。
何となくシェルを調べて使っているので書き方はたぶんクソです。とりあえずこれで動くレベルだと思ってください。
シェルファイルを作る
wordpressのルートにシェルファイルを作ります。
$ vi /var/www/wordpress/install-plugins.sh
中身はプラグインのslugを配列で管理し、for文でインストールと有効化の処理を書いています。
#!/bin/sh
PLUGINS=('wp-emmet' 'user-role-editor' 'w3-total-cache')
for i in "${PLUGINS[@]}"
do
wp plugin install "${i}"
wp plugin activate "${i}"
done
シェルの実行
wp-emmetはすでにインストール済みだったのでWarningで怒られてますが、他の2つはインストールと有効化が処理されています。
$ bash install-plugins.sh
Warning: wp-emmet: Plugin already installed.
Warning: Plugin 'wp-emmet' is already active.
Installing User Role Editor (4.17.3)
https://downloads.wordpress.org/plugin/user-role-editor.zip からインストールパッケージをダウンロードしています…
パッケージを展開しています…
プラグインをインストールしています…
プラグインのインストールが完了しました。
Success: Plugin 'user-role-editor' activated.
Installing W3 Total Cache (0.9.4)
https://downloads.wordpress.org/plugin/w3-total-cache.0.9.4.zip からインストールパッケージをダウンロードしています…
パッケージを展開しています…
プラグインをインストールしています…
プラグインのインストールが完了しました。
Success: Plugin 'w3-total-cache' activated.
これでプラグインの一括インストールと有効化ができますね。 これはクソコードなのでChefも含めてもっと良い方法を勉強していきたいと思います。
シリーズ
- VCCWでiemotoを使ったWordpressテーマ作成
- VCCWでWP-CLI(A command line interface for WordPress)を試す
- WP-CLIでWordpressプラグインをインストールし有効化する
- VCCWでファイルがアップロードできなくてはまった話