WP-CLIv2を使用してコマンドラインからWordPressサイトを管理する方法

提供:Dev Guides
移動先:案内検索

著者は、 Free Software Foundation を選択して、 Write forDOnationsプログラムの一環として寄付を受け取りました。

序章

WP-CLI は、WordPressの開発および管理タスク用のコマンドラインツールです。 ダッシュボードにログインしてページをナビゲートしなくても、WordPressWebサイトを管理するために使用できるいくつかのコマンドを提供します。

WP-CLIを使用して、従来のインターフェイスプロセスでWordPressのインストールを管理すると、ワークフローをスピードアップできます。 Webサイトの多くの側面で、BashスクリプトでWP-CLIを使用して、面倒なタスクや実行に時間がかかるタスクを自動化することもできます。

このチュートリアルでは、WP-CLIの多くの機能を使用して、ワークフローにどのように適合するかを説明します。 プラグインとテーマの管理、コンテンツの作成、データベースの操作、WordPressの更新などの一般的な操作について説明します。 WP-CLIの機能は、このチュートリアルを超えています。 ただし、このチュートリアルからスキルを転送して、他のWP-CLI機能のより一般的なオプションを操作することができます。

前提条件

このチュートリアルに従うには、安全なWordPressのインストールが必要です。 WordPressをセットアップする必要がある場合は、選択したサーバーディストリビューションについて次のチュートリアルに従うことができます。

注:既存のセットアップがない場合は WP-CLI を使用してWordPressをインストールすることもできますが、この記事ではその側面については説明しません。


ステップ1—WP-CLIのインストール

この手順では、最新バージョンのWP-CLIツールをサーバーにインストールします。 このツールは、 Pharファイルにパッケージ化されています。これは、アプリのデプロイと配布を便利にするPHPアプリケーションのパッケージ形式です。

WP-CLIのPharファイルはcurlからダウンロードできます。

curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar

ファイルをダウンロードしたら、次のコマンドを実行して、ファイルが機能していることを確認します。

php wp-cli.phar --info

次の出力が表示されます。

OutputOS:     Linux 5.4.0-51-generic #56-Ubuntu SMP Mon Oct 5 14:28:49 UTC 2020 x86_64
Shell:  /bin/bash
PHP binary:     /usr/bin/php7.4
PHP version:    7.4.3
php.ini used:   /etc/php/7.4/cli/php.ini
WP-CLI root dir:        phar://wp-cli.phar/vendor/wp-cli/wp-cli
WP-CLI vendor dir:      phar://wp-cli.phar/vendor
WP_CLI phar path:       /home/ayo
WP-CLI packages dir:
WP-CLI global config:
WP-CLI project config:
WP-CLI version: 2.4.0

次に、次のコマンドを使用してファイルを実行可能にします。

chmod +x wp-cli.phar

この時点で、wp-cli.pharファイルを直接実行して、WP-CLIツールにアクセスできます。 システム上でグローバルに使用できるようにするには、/usr/local/bin/ディレクトリに移動し、名前をwpに変更します。 これにより、プロンプトの開始時にwpコマンドを入力することにより、任意のディレクトリからWP-CLIにアクセスできるようになります。

sudo mv wp-cli.phar /usr/local/bin/wp

これで、次のコマンドを発行して、インストールされているWP-CLIのバージョンを確認できます。

wp cli version
OutputWP-CLI 2.4.0

この手順では、サーバーにWP-CLIをインストールしました。 ドキュメントで代替インストール方法を確認できます。 以降のセクションでは、WP-CLIインターフェイスを介して実行できるタスクについて説明します。

ステップ2—WordPressプラグインの設定

管理者ユーザーインターフェイスを介してWordPressプラグインをインストールして管理するのは面倒な場合があります。 このようなタスクをWP-CLIにオフロードして、プロセスを大幅に高速化することができます。 このセクションでは、コマンドラインを使用してWordPressサイトにプラグインをインストール、更新、および削除する方法を学習します。

続行する前に、WordPressインストールのディレクトリにいることを確認してください。

cd /var/www/wordpress

強調表示されたディレクトリ名を、WordPressのインストールを含むディレクトリに変更することを忘れないでください。 前提条件のチュートリアルに従った場合、これはドメイン名である可能性があります。

現在のプラグインの一覧表示

次のコマンドを使用して、WordPressサイトに現在インストールされているプラグインを一覧表示できます。

wp plugin list

プラグイン名のリストが、ステータス、バージョン、および利用可能なアップデートの表示とともに表示されます。

Output+---------+----------+-----------+---------+
| name    | status   | update    | version |
+---------+----------+-----------+---------+
| akismet | inactive | available | 4.1.7   |
| hello   | inactive | none      | 1.7.2   |
+---------+----------+-----------+---------+

プラグインの検索

WordPressプラグインリポジトリページの検索バーからプラグインを検索するか、次のコマンドを使用してすばやくアクセスできます。

wp plugin search seo

このコマンドを実行すると、検索語に一致する上位10個のプラグインのリストが表示されます(2021年初頭現在)。 seoクエリの期待される出力は次のとおりです。

OutputSuccess: Showing 10 of 4278 plugins.
+------------------------------------------------------------+---------------------+--------+
| name                                                       | slug                | rating |
+------------------------------------------------------------+---------------------+--------+
| Yoast SEO                                                  | wordpress-seo       | 98     |
| All in One SEO                                             | all-in-one-seo-pack | 92     |
| Rank Math – SEO Plugin for WordPress                 | seo-by-rank-math    | 98     |
| The SEO Framework                                          | autodescription     | 98     |
| SEOPress, on-site SEO                                      | wp-seopress         | 98     |
| Slim SEO – Fast & Automated WordPress SEO Plugin | slim-seo            | 92     |
| W3 Total Cache                                             | w3-total-cache      | 88     |
| LiteSpeed Cache                                            | litespeed-cache     | 98     |
| SEO 2021 by Squirrly (Smart Strategy)                      | squirrly-seo        | 92     |
| WP-Optimize – Clean, Compress, Cache.                | wp-optimize         | 96     |
+------------------------------------------------------------+---------------------+--------+

--pageフラグを使用すると、次のページに進むことができます。

wp plugin search seo --page=2

slug列の値に注意してください。 この値を使用して、コマンドラインでプラグインをインストールまたは更新します。

プラグインのインストール

wp plugin installコマンドを使用して、1つ以上のプラグインをインストールできます。 インストールするプラグインの名前を(slug列で)見つけて、引数としてwp plugin installに渡します。 プラグインの名前は、プラグインページのURLにもあります。

wp plugin install jetpack wordpress-seo gutenberg

出力は、各プラグインのインストールの進行状況と完了を示します。

OutputInstalling Jetpack – WP Security, Backup, Speed, & Growth (9.3.1)
Downloading installation package from https://downloads.wordpress.org/plugin/jetpack.9.3.1.zip...
Unpacking the package...
Installing the plugin...
Plugin installed successfully.
Installing Yoast SEO (15.6.2)
Downloading installation package from https://downloads.wordpress.org/plugin/wordpress-seo.15.6.2.zip...
Unpacking the package...
Installing the plugin...
Plugin installed successfully.
Installing Gutenberg (9.8.1)
Downloading installation package from https://downloads.wordpress.org/plugin/gutenberg.9.8.1.zip...
Unpacking the package...
Installing the plugin...
Plugin installed successfully.
Success: Installed 3 of 3 plugins.

wp plugin listコマンドを再度実行して、プラグインが正常にインストールされたことを確認できます。

Output+---------------+----------+-----------+---------+
| name          | status   | update    | version |
+---------------+----------+-----------+---------+
| akismet       | inactive | available | 4.1.7   |
| gutenberg     | inactive | none      | 9.8.1   |
| hello         | inactive | none      | 1.7.2   |
| jetpack       | inactive | none      | 9.3.1   |
| wordpress-seo | inactive | none      | 15.6.2  |
+---------------+----------+-----------+---------+

WordPressプラグインリポジトリ以外のリモートソースからプラグインをインストールする場合は、zipファイルのURLを引数としてwp plugin installに渡すことができます。 これは、カスタムまたはプレミアムプラグインのインストールに役立ちます。 たとえば、次のコマンドは、example.comでホストされているmyplugin.zipファイルをインストールします。 コマンドを実行する前に、強調表示されたURLをプラグインのzipファイルへのリンクに置き換えてください。

wp plugin install https://example.com/wp-content/uploads/myplugin.zip

古いバージョンのプラグインをWordPressリポジトリにインストールするには、--versionフラグを使用して目的のプラグインバージョンを指定します。

wp plugin install jetpack --version=8.0

プラグインのアクティブ化と非アクティブ化

--activateフラグをwp plugin installに追加することで、プラグインを一度にインストールしてアクティブ化できます。

wp plugin install redirection --activate
OutputInstalling Redirection (5.0)
Downloading installation package from https://downloads.wordpress.org/plugin/redirection.zip...
Using cached file '/home/ayo/.wp-cli/cache/plugin/redirection-5.0.zip'...
Unpacking the package...
Installing the plugin...
Plugin installed successfully.
Activating 'redirection'...
Warning: Plugin 'redirection' is already active.
Success: Installed 1 of 1 plugins.

1つ以上のプラグインをアクティブ化または非アクティブ化するには、それぞれwp plugin activateおよびwp plugin deactivateコマンドを使用します。

wp plugin activate jetpack gutenberg
wp plugin deactivate jetpack gutenberg

または、--allフラグを使用して、すべてのプラグインを一度にアクティブ化または非アクティブ化できます。 これは、WordPressのインストールで問題をデバッグする場合に役立ちます。

wp plugin activate --all
wp plugin deactivate --all

プラグインの更新

wp plugin updateコマンドを使用してプラグインを更新できます。 --allフラグを追加することにより、プラグインのセットまたはすべてを一度に更新することを選択できます。 たとえば、akismetプラグインを更新するには、次のコマンドを実行できます。

wp plugin update akismet

次のような出力が表示されます。

OutputEnabling Maintenance mode...
Downloading update from https://downloads.wordpress.org/plugin/akismet.4.1.8.zip...
Unpacking the update...
Installing the latest version...
Removing the old version of the plugin...
Plugin updated successfully.
Disabling Maintenance mode...
+---------+-------------+-------------+---------+
| name    | old_version | new_version | status  |
+---------+-------------+-------------+---------+
| akismet | 4.1.7       | 4.1.8       | Updated |
+---------+-------------+-------------+---------+
Success: Updated 1 of 1 plugins.

プラグインの削除

WordPressプラグインを削除するには、wp plugin deleteコマンドを使用できます。 次のように、削除する1つ以上のプラグインを指定できます。

wp plugin delete redirection

出力は削除を確認します:

OutputDeleted 'redirection' plugin.
Success: Deleted 1 of 1 plugins.

プラグイン名を次々に指定する代わりに、--allフラグを追加することで、インストールされているすべてのプラグインを一度に削除することもできます。

wp plugin delete --all

このステップでは、WP-CLIを使用してWordPressWebサイトのプラグインを管理しました。 管理ダッシュボードをクリックするよりも、アクションを実行する方がはるかに高速です。 次のセクションでは、WP-CLIを利用してWordPressテーマをインストールおよび管理します。

ステップ3—テーマの構成

WP-CLIを使用してテーマを管理するプロセスは、プラグインを管理するために使用できる方法とほぼ同じです。 このセクションでは、wp themeサブコマンドを使用して、新しいテーマをソースし、WordPressWebサイトに適用します。

まず、現在Webサイトにインストールしているテーマを確認します。

wp theme list

インストールされているテーマのリストが表示されます。

Output+-----------------+----------+-----------+---------+
| name            | status   | update    | version |
+-----------------+----------+-----------+---------+
| twentynineteen  | inactive | available | 1.8     |
| twentytwenty    | inactive | none      | 1.6     |
| twentytwentyone | active   | available | 1.0     |
+-----------------+----------+-----------+---------+

現在インストールされているテーマは3つあり、アクティブなテーマはtwentytwentyoneです。 より多くの機能を備えたものを見つけたい場合は、次のような検索を試すことができます。

wp theme search color

出力は、color検索語に一致する832のテーマがあることを示しています。

OutputSuccess: Showing 10 of 832 themes.
+---------------------+---------------------+--------+
| name                | slug                | rating |
+---------------------+---------------------+--------+
| Color               | color               | 0      |
| All Colors          | all-colors          | 100    |
| Color Blog          | color-blog          | 98     |
| Color Block         | color-block         | 0      |
| X Blog color        | x-blog-color        | 0      |
| Multicolor Business | multicolor-business | 0      |
| ColorNews           | colornews           | 100    |
| Colorist            | colorist            | 100    |
| ColorMag            | colormag            | 98     |
| MultiColors         | multicolors         | 74     |
+---------------------+---------------------+--------+

--pageフラグを使用して、結果をページングできます。 この例では、ColorMagテーマはかなり良い評価を得ているので、先に進んでインストールしてください。 --activateフラグは、テーマをすぐにアクティブにします。

wp theme install colormag --activate

出力はインストールを確認します:

OutputInstalling ColorMag (2.0.4)
Downloading installation package from https://downloads.wordpress.org/theme/colormag.2.0.4.zip...
Unpacking the package...
Installing the theme...
Theme installed successfully.
Activating 'colormag'...
Success: Switched to 'ColorMag' theme.
Success: Installed 1 of 1 themes.

Webサイトにアクセスすると、ColorMagテーマが正常に適用されていることがわかります。

wp theme listコマンドからの出力は、twentynineteentwentytwentyoneの両方のテーマで利用可能な更新があることを示しています。 次のコマンドを使用して、両方を更新できます。

wp theme update --all

次のような出力が表示されます。

OutputDownloading update from https://downloads.wordpress.org/theme/twentynineteen.1.9.zip...
Unpacking the update...
Installing the latest version...
Removing the old version of the theme...
Theme updated successfully.
Downloading update from https://downloads.wordpress.org/theme/twentytwentyone.1.1.zip...
Unpacking the update...
Installing the latest version...
Removing the old version of the theme...
Theme updated successfully.
+-----------------+-------------+-------------+---------+
| name            | old_version | new_version | status  |
+-----------------+-------------+-------------+---------+
| twentynineteen  | 1.8         | 1.9         | Updated |
| twentytwentyone | 1.0         | 1.1         | Updated |
+-----------------+-------------+-------------+---------+
Success: Updated 2 of 2 themes.

wp themeコマンドには、テーマの詳細の取得、特定のテーマがインストールされているかどうかの確認、1つ以上のテーマの削除などのタスクを実行するのに役立つ多くのサブコマンドがあります。 wp help themeまたはwp help theme installのように、サブコマンドの前にhelpを追加すると、すべてのオプションを調べることができます。

WP-CLIを使用してテーマを管理できるようになったので、WordPressコンテンツを管理するためにツールが提供するオプションを確認します。

ステップ4—投稿とページを作成する

WP-CLIは、コマンドラインを介してコンテンツを管理するためのいくつかの方法を提供します。 nanovimなどのコマンドラインエディターに精通している場合は、ターミナルで投稿を作成する方が快適です。

次のサイトで投稿のリストを閲覧できます。

wp post list

投稿のリストが届きます。

Output+----+--------------+-------------+---------------------+-------------+
| ID | post_title   | post_name   | post_date           | post_status |
+----+--------------+-------------+---------------------+-------------+
| 1  | Hello world! | hello-world | 2021-01-24 12:32:06 | publish     |
+----+--------------+-------------+---------------------+-------------+

出力には、Hello world!というタイトルと1のIDを持つ1つの公開された投稿が表示されます。 この投稿を削除するには、wp post deleteコマンドを使用して、投稿IDを渡します。

wp post delete 1

出力により、投稿の削除が確認されます。

OutputSuccess: Trashed post 1.

新しい投稿を作成するには、次のコマンドを実行します。

wp post create --post_status=publish --post_title="Sample post created with WP-CLI" --edit

このコマンドは、--post_statusフラグを使用して投稿のステータスを設定します。 publishに設定すると、コマンドの実行直後に投稿が公開されます。 代わりにドラフトを作成する場合は、--post_statusフラグをdraftに設定します。 --post_titleフラグは投稿のタイトルを指定する方法であり、--editは投稿の本文をデフォルトのシステムエディター(vim)で開きます。 ターミナルでwp help post createと入力すると、createサブコマンドと組み合わせて使用できる他のフラグを見つけることができます。

vimエディターが開いたら、iキーを押してINSERTモードに入り、投稿の内容をエディターに入力します。 投稿の編集が完了したら、ESCボタンを押してvimエディターを終了し、:wqと入力して、ENTERを押します。 vimを終了すると、次の出力が表示されます。

OutputSuccess: Created post 6.

wp post listコマンドをもう一度入力すると、作成したばかりの投稿が見つかります。 ウェブサイトのフロントエンドを確認することもできます。

コマンドラインで投稿を書き込む代わりに、テキストファイルから投稿コンテンツをインポートすることもできます。 まず、ファイルを作成する必要があります。 例えば:

touch content.txt

次に、コマンドラインエディタでファイルを開き、コンテンツを追加または編集します。

nano content.txt

編集が終わったら、CTRL-XYの順に押してファイルを保存し、閉じて保存します。 次のコマンドを使用して、そのファイルの内容をWordPress投稿としてインポートできます。 createサブコマンドの後にファイルへのパスを指定するだけです。 ここにあるサンプルファイルでは、次のコマンドを実行します。

wp post create ./content.txt --post_title='Sample Post Created with WP-CLI' --post_status=publish

投稿の代わりにページを作成する場合は、--post_typeフラグを追加し、pageに設定します。

wp post create --post_title="A simple page" --post_status=draft --post_type=page

投稿またはページの生成

WP-CLIには、ダミーデータを使用して投稿とページをクリーンに生成するオプションもあります。 これは、開発中のテーマまたはプラグインをすばやくテストするためのカスタムデータが必要な場合に役立ちます。 次のコマンドは、投稿を生成するためのものです。 追加のフラグを含めない場合、デフォルトで100件の投稿が生成されます。

wp post generate

--countフラグを使用して、生成される投稿の数を変更できます。

wp post generate --count=20

投稿の代わりにページを生成する場合は、--post_typeフラグを追加し、pageに設定します。

wp post generate --count=20 --post_type=page

wp help post generateを使用して、目的の結果を得るのに役立つ他の利用可能なオプションを確認することもできます。

WordPressの改訂

何年にもわたるコンテンツの編集と更新のために、古いサイトのメインページに数十または数百の改訂があることは珍しくありません。 リビジョンは、コンテンツの以前のバージョンに戻す必要がある場合に役立ちますが、多すぎるとパフォーマンスが低下する可能性もあります。 次のコマンドを実行して、WordPressデータベース内のすべての投稿リビジョンをクリーンアップできます。

wp post delete $(wp post list --post_type='revision' --format=ids) --force

括弧で囲まれたコマンドが最初に評価され、存在するすべてのポストリビジョンのidsが生成され、deleteサブコマンドに渡されます。 タイプ'revision'の投稿はゴミ箱への送信をサポートしていないため、--forceフラグが必要です。

ステップ5—データベースの管理

WP-CLIの最も便利な機能の1つは、MySQLデータベースと対話する機能です。 たとえば、対話型セッションが必要な場合は、次のコマンドを使用してMySQLプロンプトを入力できます。

wp db cli

その後、通常どおりにMySQLシェルを使用できます。タスクが完了したら、exitと入力してシェルを終了します。

1回限りのクエリの場合、有効なSQLクエリを引数としてコマンドに渡すことにより、wp db queryコマンドを使用できます。 たとえば、WordPressデータベースに登録されているすべてのユーザーを一覧表示するには、次のコマンドを実行します。

wp db query "SELECT user_login,ID FROM wp_users;"

次のような出力が表示されます。

Output+------------+----+
| user_login | ID |
+------------+----+
| admin      |  1 |
+------------+----+

wp db queryを使用すると、WordPressデータベースに対して1回限りのSQLクエリを実行できます。

バックアップと復元

WP-CLIを使用すると、WordPressデータベースをバックアップすることもできます。 次のコマンドを実行すると、SQLダンプファイルが現在のディレクトリに配置されます。 このファイルには、投稿、ページ、ユーザーアカウント、メニューなどを含むWordPressデータベース全体が含まれています。

wp db export

ファイルが作成されたら、保管のために別の場所に移動できます。

OutputSuccess: Exported to 'wordpress-2021-01-25-25618e7.sql'.

wp db importコマンドを使用して、SQLダンプファイルをデータベースにインポートすることもできます。 これは、WordPressWebサイトをある場所から別の場所に移行する場合に便利です。

wp db import file.sql

検索と交換

WP-CLIで実行できるもう1つの一般的な操作は、検索と置換の操作です。 最初にドライランを実行して、変更するインスタンスの数を確認できます。 最初の文字列は検索コンポーネントで、2番目の文字列は置換です。

wp search-replace --dry-run 'example.com' 'example.net'

これを実行すると、出力は次のようになります。

OutputSuccess: 10 replacements to be made.

続行することを確認したら、前のコマンドから--dry-runフラグを削除します。

wp search-replace 'example.com' 'example.net'

このステップでは、WP-CLIを使用して実行できるいくつかのデータベース操作を確認しました。 データベースの最適化、データベーステーブルの表示、データベースの削除、データベースのリセットなど、他の操作を完了することもできます。 ターミナルでwp help dbと入力すると、wp dbサブコマンドで他のオプションを調べることができます。

ステップ6—WordPressを更新する

コアWordPressファイルはWP-CLIで更新できます。 次のコマンドを実行して、インストールしたWordPressの現在のバージョンを調べることができます。

wp core version
Output5.6

wp core check-updateコマンドで更新を確認できます。 お使いのバージョンが最新でない場合、次のような出力が生成されます。

Output+---------+-------------+-----------------------------------------------------------------------+
| version | update_type | package_url                                                           |
+---------+-------------+-----------------------------------------------------------------------+
| 5.6.1   | minor       | https://downloads.wordpress.org/release/wordpress-5.6.1-partial-0.zip |
+---------+-------------+-----------------------------------------------------------------------+

アップデートが利用可能な場合は、次のコマンドでインストールできます。

wp core update
OutputUpdating to version 5.6.1 (en_US)...
PHP Warning:  Declaration of WP_CLI\Core\CoreUpgrader::download_package($package, $check_signatures = true) should be compatible with WP_Upgrader::download_package($package, $check_signatures = false, $hook_extra = Array) in phar:///usr/local/bin/wp/vendor/wp-cli/core-command/src/WP_CLI/Core/CoreUpgrader.php on line 30
Warning: Declaration of WP_CLI\Core\CoreUpgrader::download_package($package, $check_signatures = true) should be compatible with WP_Upgrader::download_package($package, $check_signatures = false, $hook_extra = Array) in phar:///usr/local/bin/wp/vendor/wp-cli/core-command/src/WP_CLI/Core/CoreUpgrader.php on line 30
Downloading update from https://downloads.wordpress.org/release/wordpress-5.6.1-partial-0.zip...
Unpacking the update...
Success: WordPress updated successfully.

--versionフラグをバージョン番号に設定して、特定のバージョンに更新することもできます。 古いバージョンに戻す場合は、--forceフラグも追加する必要がありますが、これはお勧めしません。

wp core update --version=5.6
wp core update --version=5.0 --force 

この最後のステップでは、WordPressのバージョンをWP-CLIで更新しました。

結論

WordPressの開発者と管理者がコマンドラインで作業している場合、WP-CLIはツールボックスへの優れた追加機能です。 このチュートリアルでは、コマンドラインから実行できる一般的なタスクのいくつかについて説明しました。

WP-CLIには、Webインターフェイスなしでコマンドラインでさらに多くのことを実現するために慣れることができる、さらに多くのコマンドとオプションがあります。 wp help <command>を使用して、特定のサブコマンドで実行できるすべてのことを確認してください。 さらに多くの機能でWP-CLIを拡張する多くのコミュニティツールもあります。

WordPressのその他のチュートリアルについては、WordPressトピックページをご覧ください。