前置き
WP-CLIを使ったローカル環境の構築を行なったのでその時にやったことを書いていきます。
WP-CLIとは
WordPressやプラグインのインストールや更新をCLIで行うための公式ツールです。
WORDPRESS.ORGにドキュメントがあるのでちゃんと公式です。
WordPressの開発環境を作る時にやること
WordPressの開発環境を手動で構築する際にはだいたい以下の作業を行うかと思います。
- WordPressの最新バージョンを公式サイトからダウンロード
- ローカルにPHPが動く環境を作成
- WordPressのインストール
- wp-config.phpの作成
- サイト情報と管理者ユーザの設定
- プラグインのインストール
- 使うテーマのインストール、もしくは自前のテーマを有効化
- 使用しないテーマ、プラグインの削除
この内、ローカルにPHPが動く環境を作成
以外はWP-CLIで実施することが可能です。
それぞれの作業はWP-CLIを使うと以下の形式に置き換えることができます。
WordPressの最新バージョンを公式サイトからダウンロード
$ wp core download --locale=ja
これを実行すると実行したディレクトリ内に日本語対応されたWordPressの各種ファイルが展開されます。
WordPressのインストール
wp-config.phpの作成
$ wp config create --dbname=<DB名> --dbuser=<DBユーザ名> --dbpass=<アクセスするユーザのパスワード> --dbcharset='utf8mb4'
DBのホスト名を変更したい場合には--dbhost
を指定することで変更することができます。
設定しない場合にはデフォルトのlocalhostが使用されます。
サイト情報と管理者ユーザの設定
$ wp core install --url=<サイトのURL> --title=<サイトのタイトル> --admin_user=<管理者ユーザ名> --admin_password=<管理者パスワード> --admin_email=<管理者のメールアドレス>
プラグインのインストール
$ wp plugin install <プラグイン名>
ここでのプラグイン名はXML Sitemapsを例にするとURLに出ているgoogle-sitemap-generator
がプラグイン名になります。
バージョンを指定したい場合には--version
オプションでインストールしたいバージョンを指定、インストールと同時に有効化したいなら--activate
をつけてあげればできます。
問題点としてはそのプラグインがインストールされているかどうかしかチェックしていないため、インストールされているバージョンとインストールしようとしているバージョンが違ってもアップデートを自動的に行ったりはしてくれません。
--force
をつけることで強制的にインストールし直してアップデートをすることが可能ですが、CIの中に組み込んだりすると毎回インストールが走るので一度の実行がそこそこ時間がかかるようになります。
使うテーマのインストール、もしくは自前のテーマを有効化
使うテーマのインストール
$ wp theme install <テーマ名>
インストールと同時に有効化する場合にはプラグインと同じく--activate
をオプションを使うことで可能です。
テーマ名はプラグイン同様にURLのものを指定する必要があります。
自前のインストール
$ wp theme activate <テーマ名>
使用しないテーマ、プラグインの削除
テーマの削除
$ wp theme delete <テーマ名>
プラグインの削除
$ wp plugin delete <プラグイン名>
コンフィグを使ってオプションを省略
wp-cliを実行するディクレクトリにwp-cli.ymlを作成しておくとオプションのデフォルトを設定できる。
以下、例。
path: public
core download:
locale: ja
version: 5.8.1
core install:
url: localhost
title: Example
admin_user: supervisor
admin_email: info@example.com
config create:
dbname: dummy_wp_local
dbuser: dummy_wp_user
dbhost: db
dbcharset: utf8mb4
設定する細かい内容はドキュメントを参照.
管理者、DBのパスワードはオプションで指定するかpomptで入力する想定です。
終わりに
通常使う分にはスクリプトにまとめてしまえば共通的に実行できて管理画面をぽちぽちする必要が無いのでだいぶ楽ではある。
ただ、CIに組み込んだりする場合は自前でアップデートがあるかなどのチェックをする必要があるのでだいぶ使いづらい印象です。