PHP
WordPress
Vagrant
wp-cli
VCCW

vccwでWordPressを作ったら、記事インポートまで自動でやってしまおう!!


vagrantによる環境共有時の問題点

git環境にvccwを含んだソースコードをコミットして、

gitから落としてきたソースコードをvagrant upしてローカル環境を作成している人も多いだろう。

だが、下記のようにREADME.mdなどに手動での環境作成の手順を記載しているケースが多くみられる。


3.vagrant upが完了したら、テーマを「original-theme」に切り替える

4.プラグイン「wordpress-importer」を有効化する

5.「import.xml」をインポートする


このように、vagrant up後の手順に手動でのテーマの切り替え、プラグインの有効化、記事のインポート含まれていて、完全に自動化されていないケースも多く見受けられる。

これらは「 provision-post.sh 」と「wp-cli」で解決することができる。


provision-post.shとは

provision-post.shというファイル名で、Vagrantfileと同一階層にファイルを設置すると、

ファイルの中に書かれた処理を、初回のvagrant up後に実施してくれる。

この中に、環境作成後に手動でやっていた作業をシェルとして書いてしまえば、

もう手動で環境を設定する必要はない。


wp-cliとは

wp-cliとは、WordPressの機能をコマンドライン側から実行するツールである。

テーマの切り替え、プラグインの有効化、記事のインポート、

他にもWordPressの管理画面側から行うような作業は一通りwp-cliからも実行ができる

ここでは、初期環境構築時に使いそうなコマンドに限って解説する。


wp theme activate

テーマを有効化させる。初期インストール後は公式テーマが有効化されているので、

このコマンドを実行して自分の作成したテーマやインストールしたテーマに切り替える。

使用例:original-themeというテーマに切り替える

wp theme activate original-theme


wp theme uninstall

テーマを削除する。

インストール直後のWordPressはデフォルトでテーマが追加されているため、

不要なテーマを削除する。

使用例:テーマ「twentyseventeen」を削除する

wp theme uninstall twentyseventeen


wp plugin activate

プラグインの有効化を行う。

この後実施する記事のインポートに必要なwordpress-importerを有効化したり、

インポートする設定に紐づくプラグインをあらかじめ有効化しておく必要がある。

使用例:wordpress-importerを有効化する

wp plugin activate wordpress-importer


wp plugin uninstall

プラグインを削除する。

インストール時、デフォルトで「Hello Dolly」がインストールされるため、

これを削除する設定を追加しておくとよい。

使用例:「Hello Dolly」を削除する

wp plugin uninstall hello


wp import

WordPressへインポートを行う。

「wordpress-importer」のプラグインが有効化されている必要があるので注意。

管理画面の「ツール>インポート」から行う作業と同じことができる。

「--authors=」オプションで、取り込んだ記事を所有者を変更できる。

存在しない所有者があったら作成する場合は「--authors=create」を指定する

使用例:Vagrantfileと同じ階層にある「import.xml」をインポートする。xmlに指定された所有者が存在しない場合は、所有者を作成する。

wp import /vagrant/import.xml --authors=create


まとめ

上記で例示したコマンドをまとめて「provision-post.sh」に記載すると、下記のようになるだろう。

なお、シェルの中では#でコメントを入れることができる


provision-post.sh

# original-themeを有効化し、不要なテーマを削除する

wp theme activate original-theme
wp theme uninstall twentyseventeen
wp theme uninstall twentysixteen
wp theme uninstall twentynineteen

# wordpress-importerを有効化し、不要なHello Dollyを削除する
wp plugin activate wordpress-importer
wp plugin uninstall hello

# import.xmlをインポートする
wp import /vagrant/import.xml --authors=create


こちらをベースに、自分のサイトに合わせて必要な処理を書き足していくとよいだろう。