WP-CLIv2を使用してコマンドラインからWordPressサイトを管理する方法
著者は、 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をセットアップする必要がある場合は、選択したサーバーディストリビューションについて次のチュートリアルに従うことができます。
- ルート以外の
sudo
ユーザーで構成されているサーバー。 これについては、初期サーバーセットアップガイドのいずれかに従うことができます。 - Linux、Apache、MySQL、PHP(LAMPスタック)がサーバーにインストールされています。 サーバーのディストリビューションについては、 Linux、Apache、MySQL、PHP(LAMP)スタックのインストール方法に従ってください。
- 安全なWordPressのインストール。 これは、LAMPスタックを使用して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
コマンドからの出力は、twentynineteen
とtwentytwentyone
の両方のテーマで利用可能な更新があることを示しています。 次のコマンドを使用して、両方を更新できます。
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は、コマンドラインを介してコンテンツを管理するためのいくつかの方法を提供します。 nanoやvimなどのコマンドラインエディターに精通している場合は、ターミナルで投稿を作成する方が快適です。
次のサイトで投稿のリストを閲覧できます。
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-X
、Y
の順に押してファイルを保存し、閉じて保存します。 次のコマンドを使用して、そのファイルの内容を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トピックページをご覧ください。