ソリッドシード株式会社

WordPressの便利ツール『WP-CLI』とは?

2021年1月22日

WP-CLIとは

WP-CLIは文字通り、WordPressのコマンドラインインターフェースです。
WP-CLIを使用する事でコマンドラインで各種操作を行う事ができます。
また、コマンドラインならではの便利な機能も複数あるので、WordPress利用者であれば覚えておいて損はありません。

インストール

 
// 必要なパッケージをインストール
// ※linuxのディストリビューションはalpine linuxを想定しています
// ※他のディストリビューションを利用する際は適宜、パッケージ名を書き換えてください。
apk update
apk add curl vim unzip mysql-client

// WP-CLIインストール
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
chmod +x wp-cli.phar
mv wp-cli.phar /usr/local/bin/wp

// 確認
wp --info
 

最後のwp –infoを実行してバージョン情報が表示されていれば成功です。
次項からは便利な使い方をご紹介します。

wp db

wp dbはデータベースの操作コマンドです。
クエリの実行やDBの作成・削除、テーブル最適化など
色々なDB操作を行う事ができます。

 
// クエリ実行
wp db query < query.sql
// DB作成
wp db create
// DB削除
wp db drop
// テーブル最適化
wp db optimize
 

どれも便利ですが、よく使用するのはバックアップ用のdumpかと思います。

 
// dumpを圧縮して出力
wp db export - | gzip -c > ./dump.sql.gz
 

wp search-replace

wp search-replaceはデータベース内の文字列を検索/置換するコマンドです。
ドメイン変更時などにレコードの文字列置換が出来る為、便利です。

実際の運用ではまずテストサイトで置換後のデータに問題がないか試すと思いますが、
置換のみではなく、置換後のdumpファイルの出力も可能です。

 
// 置換後のdumpファイルの出力
wp search-replace --skip-columns=guid  'example.com' 'my.example.com' --export > ./dump.sql
 

シェルスクリプトでWP-CLIを利用する

コマンドラインからWordPressを操作できるメリットのひとつはシェルスクリプトに組み込める事です。
簡易的ではありますがサンプルを作成しました。
以下はDBのバックアップを保存した後に、ドメインを置換したデータをインポートする例です。

#!/bin/bash
// 置換対象文字列
BEFORE_DOMAIN="example.com"
AFTER_DOMAIN="my.example.com"

// パス
DUMP_DIR="/var/www/dump"
BACKUP_FILE_NAME="backup.sql.gz"
AFTER_REPLACE_FILE_NAME="dump.sql"

// バックアップのdumpを生成
wp db export - | gzip -c > ${DUMP_DIR}/${BACKUP_FILE_NAME}
// レコードのドメイン名を置換後のdumpを生成
wp search-replace --skip-columns=guid '${BEFORE_DOMAIN}' '${AFTER_DOMAIN}' --export > ${DUMP_DIR}/${AFTER_REPLACE_FILE_NAME}

// テーブルを全て削除
wp db reset --yes
// import
wp db import ${DUMP_DIR}/${AFTER_REPLACE_FILE_NAME}
// DBを更新
wp core update-db
 

投稿者:Komine