WordPressをセットアップする方法と言えば、WordPressの管理画面にアクセスして、テーマやをプラグインを追加したり、設定を変更したりしますよね。
WordPressのコマンドラインwp-cliを使うと、管理画面にアクセスすることなく、プラグインをインストールしたり、WordPressの設定を変更したりできます。
この記事では、WordPressをコマンドラインでセットアップする方法を紹介します。
wp-cliコマンドとは?
wp-cliは、WordPressのコマンドラインインタフェースです。
wp-cliを使うと、コマンドラインでWordPressの次のような作業を実行できます。
- WordPressのダウンロード
- WordPressのインストール
- WordPressのバージョンアップ
- データベースの作成
- テーマのインストール
- 記事の取得、作成、編集
- プラグインのインストール
- インポートとエクスポート
wp-cliの用途
wp-cliは、WordPressのセットアップや自動投稿、テスト用途などで利用できます。
たとえば、DockerでWordPressをセットアップするときに、テーマやプラグイン・記事を入れた状態まで一気に設定できます。
また、別システムと連携してWordPressに自動投稿することもできます。
wp-cliは、カレントディレクトリにあるWordPressを認識して動作するので、運用中のWordPressのバージョンアップやバックアップ、パスワード再設定といったメンテナンス作業にも使えるのです。
そのほか、WordPressのテーマやプラグインの開発者なら、様々なプラットフォームでの動作検証にも使えそうですね。
wp-cliのインストール
wp-cliはyumで簡単にインストールできます。
wp-cliはepelレポジトリからインストールするので、先にepelを追加しておきます。
# yum install epel-release
あとは、yum install
コマンドを打つだけです。
# yum install wp-cli
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: ftp.iij.ad.jp
* epel: ftp.iij.ad.jp
* extras: ftp.iij.ad.jp
* remi-php74: ftp.riken.jp
* remi-safe: ftp.riken.jp
* updates: ftp.iij.ad.jp
Resolving Dependencies
--> Running transaction check
---> Package wp-cli.noarch 0:2.4.0-2.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
========================================================================================================================
Package Arch Version Repository Size
========================================================================================================================
Installing:
wp-cli noarch 2.4.0-2.el7 epel 1.0 M
Transaction Summary
========================================================================================================================
Install 1 Package
Total download size: 1.0 M
Installed size: 5.3 M
Is this ok [y/d/N]: y
Downloading packages:
wp-cli-2.4.0-2.el7.noarch.rpm | 1.0 MB 00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : wp-cli-2.4.0-2.el7.noarch 1/1
Verifying : wp-cli-2.4.0-2.el7.noarch 1/1
Installed:
wp-cli.noarch 0:2.4.0-2.el7
Complete!
wp-cliでWordPressをダウンロード
それではwp-cliを使ってみましょう。
wp-cliでは、wpコマンドを使ってWordPressを管理します。
WordPressのダウンロードはwp core download
です。--locale=ja
オプションをつけると、日本語版がダウンロードされます。
# wp core download --locale=ja
Downloading WordPress 5.6.2 (ja)...
md5 hash verified: 0b2a8ef04185a9708292db73eee3e66f
Success: WordPress downloaded.
WordPressのファイル一式が展開されました。
# ll
total 216
-rw-r--r--. 1 root root 405 Mar 8 01:31 index.php
-rw-r--r--. 1 root root 19915 Mar 8 01:31 license.txt
-rw-r--r--. 1 root root 10089 Mar 8 01:31 readme.html
-rw-r--r--. 1 root root 7101 Mar 8 01:31 wp-activate.php
drwxr-xr-x. 9 root root 4096 Mar 8 01:31 wp-admin
-rw-r--r--. 1 root root 351 Mar 8 01:31 wp-blog-header.php
-rw-r--r--. 1 root root 2328 Mar 8 01:31 wp-comments-post.php
-rw-r--r--. 1 root root 3931 Mar 8 01:31 wp-config-sample.php
drwxr-xr-x. 5 root root 65 Mar 8 01:31 wp-content
-rw-r--r--. 1 root root 3939 Mar 8 01:31 wp-cron.php
drwxr-xr-x. 25 root root 8192 Mar 8 01:31 wp-includes
-rw-r--r--. 1 root root 2496 Mar 8 01:31 wp-links-opml.php
-rw-r--r--. 1 root root 3300 Mar 8 01:31 wp-load.php
-rw-r--r--. 1 root root 49831 Mar 8 01:31 wp-login.php
-rw-r--r--. 1 root root 8509 Mar 8 01:31 wp-mail.php
-rw-r--r--. 1 root root 20975 Mar 8 01:31 wp-settings.php
-rw-r--r--. 1 root root 31337 Mar 8 01:31 wp-signup.php
-rw-r--r--. 1 root root 4747 Mar 8 01:31 wp-trackback.php
-rw-r--r--. 1 root root 3236 Mar 8 01:31 xmlrpc.php
wp-cliでWordPressをインストール
次は、wp config create
コマンドで、データベースの接続情報(wp-config.php)を設定します。
--dbname
パラメータがデータベース名、--dbuser
が接続ユーザー名です。パスワードをコマンドライン履歴に残さないため、--promt=dbpass
を指定してコンソールで入力しています。
# wp config create --dbname=wp_egatech --dbuser=foo --prompt=dbpass
1/10 [--dbpass=<dbpass>]:
Success: Generated 'wp-config.php' file.
なお、コマンドラインでパスワードを指定するときは、--dbpass=password
のように指定します。
そのあと、wp core install
コマンドで、WordPress本体の初期セットアップ(DBテーブル作成)を行います。
# wp core install --url=https://egatech.net --title="EGATECH" --admin_user=egatech --admin_email=info@egatech.net --prompt=admin_password
1/10 [--admin_password=<admin_password>]:
Success: WordPress installed successfully.
wp-cliでWordPressテーマをインストール
次は、wp theme install
コマンドでテーマをインストールします。
wp theme install <テーマ名 もしくは URL>
WordPressテーマレポジトリに登録されたテーマのときは、テーマの名前(twentytwentyoneなど)を指定します。
テーマレポジトリにないテーマの場合は、URLを指定します。例えば、Luxeritasなら次のようにテーマの配信URLを指定します。
# wp theme install https://thk.kanzae.net/wp/download/9144/ --activate
https://thk.kanzae.net/wp/download/9144/ からインストールパッケージをダウンロード中...
パッケージを展開しています…
テーマをインストールしています…
このテーマには親テーマが必要です。親テーマがインストールされているか確認しています。
親テーマ Luxeritas 3.13.0 はインストール済みです。
テーマのインストールが完了しました。
Activating 'luxech'...
Success: Switched to 'Luxeritas Child Theme' theme.
Success: Installed 1 of 1 themes.
子テーマのURLを指定するだけで、依存関係のある親テーマも含めてインストールしてくれるのは便利!
wp-cliでWordPressプラグインをインストール
WordPressのプラグインも、コマンドラインでインストールできます。
wp plugin install <プラグイン名 もしくは URL>
All in One SEOとContact Form 7をインストールしてみました。
# wp plugin install all-in-one-seo-pack --activate
Installing All in One SEO (4.0.16)
https://downloads.wordpress.org/plugin/all-in-one-seo-pack.4.0.16.zip からインストールパッケージをダウンロード中...
パッケージを展開しています…
プラグインをインストールしています…
プラグインのインストールが完了しました。
Activating 'all-in-one-seo-pack'...
Plugin 'all-in-one-seo-pack' activated.
Success: Installed 1 of 1 plugins.
# wp plugin install contact-form-7 --activate
Installing Contact Form 7 (5.4)
https://downloads.wordpress.org/plugin/contact-form-7.5.4.zip からインストールパッケージをダウンロード中...
パッケージを展開しています…
プラグインをインストールしています…
プラグインのインストールが完了しました。
Activating 'contact-form-7'...
Plugin 'contact-form-7' activated.
Success: Installed 1 of 1 plugins.
プラグインのインストールも簡単です。
wp-cliでWordPressの設定を変更
wpコマンドで、WordPress本体やプラグイン・テーマの設定変更もできます。
設定値の変更は、wp option update
コマンドでできます。
$ wp option update <設定項目キー> <値>
たとえば、パーマリンク設定を「投稿名」に変更するときは、次のコマンドを実行します。
$ wp option update permalink_structure "/%postname%/"
なお、設定項目によっては値がJSON形式になっているものもあるので、コマンドラインだけですべての設定の変更ができるとは言い難いですね。
wp-cliでユーザーのパスワードを再設定
wp-cliを使って、WordPressのログインパスワードを再設定することもできます。
$ wp user update <ユーザー名> --prompt=user_pass
たとえば、ユーザー名administratorのパスワードを変更する場合は、次のようになります。
$ wp user update administrator --prompt=user_pass
1/14 [--user_pass=<password>]:
Success: Updated user 2.
wp-cliは複数のWordPressサイトの管理に便利
以上のように、wp-cliを使うと、WordPressサイトのセットアップやメンテナンスから記事投稿までコマンドラインでできるようになります。
自動化には欠かせないツールですね。