WordPressのテーマやプラグインをコマンドラインでインストールする方法

WordPress

WordPressをセットアップする方法と言えば、WordPressの管理画面にアクセスして、テーマやをプラグインを追加したり、設定を変更したりしますよね。

WordPressのコマンドラインwp-cliを使うと、管理画面にアクセスすることなく、プラグインをインストールしたり、WordPressの設定を変更したりできます。

この記事では、WordPressをコマンドラインでセットアップする方法を紹介します。

wp-cliコマンドとは?

wp-cliは、WordPressのコマンドラインインタフェースです。

wp-cliを使うと、コマンドラインでWordPressの次のような作業を実行できます。

  • WordPressのダウンロード
  • WordPressのインストール
  • WordPressのバージョンアップ
  • データベースの作成
  • テーマのインストール
  • 記事の取得、作成、編集
  • プラグインのインストール
  • インポートとエクスポート
Command line interface for WordPress | WP-CLI

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 core download --locale=ja --version=5.5.0 のようにバージョン番号を指定できます。

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-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を指定するだけで、依存関係のある親テーマも含めてインストールしてくれるのは便利!

--activeオプションをつけると、インストールしたテーマをすぐ有効化します。

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 user reset-passwordコマンドもありますが、これはパスワードリセットメールを送信します。

wp-cliは複数のWordPressサイトの管理に便利

以上のように、wp-cliを使うと、WordPressサイトのセットアップやメンテナンスから記事投稿までコマンドラインでできるようになります。

自動化には欠かせないツールですね。