wp-cli コマンド一覧


wp-cliは、WordPressのコマンドラインツール。コマンドで WordPress やデータベースの様々な操作ができる。仮想環境なら、仮想マシンにログインした状態で実行する。

[» エックスサーバー(XServer)で SSH接続し、PHP のバージョン切替えと WP-CLI のインストールをするまでの手順](https://qiita.com/oreo3@github/items/5a79d0010ab1e2e8ad41)

wp-cli コマンドの一例
------------------------------------------------------------

[» コマンド一覧](https://developer.wordpress.org/cli/commands/)

### プラグイン

* `wp plugin install broken-link-checker contact-form-7 --activate` インストール。--activate オプション付けると有効化
* `wp plugin activate wp-multibyte-patch` プラグインの有効化
* `wp plugin deactivate broken-link-checker` プラグインの無効化
* `wp plugin uninstall akismet hello` アンインストール。無効化した後で。jetpack は手動で wp-content/plugins/jetpack ディレクトリを削除する必要がある
* `wp plugin status` インストールされたプラグインの一覧と状況。頭にAがあるものは有効化されているもの、Uが付いてるものはアップデートが出てるもの
* `wp plugin search` プラグイン検索

### アップデート

* `wp core update && wp plugin update --all && wp theme update --all && wp core language update` 色々まとめてアップデート
* `wp plugin update --all` 全てのプラグインをアップデート
* `wp plugin update addquicktag contact-form-7` 特定のプラグインをアップデート
* `wp plugin update contact-form-7 --version=バージョン` 特定バージョンへのアップデート/ダウンデート ※ダウングレードもこれ
* `wp core language update` 翻訳ファイルのアップデート
* `wp core check-update` WordPress本体のアップデートが出てないか確認
* `wp core update` WordPress本体を最新版にアップデート(wp-cliもアップデートすること)
* `wp core update` `wp core update-db` `wp core language install ja` WordPress本体を最新バージョンにアップデート
* `wp core update --version=4.0.1 --force`  WordPress本体を指定バージョンにする。アップデートで不具合が起き戻すときに。--forceが必要らしい。
* `wp core download --locale=ja --path=/var/www/html/wordpress --version=4.5.2 --force` パスやバージョンを指定してwp本体をインストール。--force 付けると存在するファイルを上書き

### メディア

* `wp media regenerate --yes` サムネイル画像の再生成。Imagick か GD が必要。 --skip-delete で現在ある画像を削除せず残す
* `wp media import ~/Pictures/**\/*.jpg` ホーム/Picturesにあるjpg画像を全てWordPressにインポート。オプション一例、--title=タイトル、--caption=キャプション、--alt=代替テキスト  
  例) `wp media import ~/Downloads/image.png --post_id=123 --title="A downloaded picture" --featured_image`

### テーマ

* `wp theme status` インストールされたテーマの一覧と状況。頭に付いてる文字の意味はプラグインのそれと同じ
* `wp theme update --all` 全てのテーマをアップデート
* その他、プラグインとほぼ同じ
* `wp theme activate twentysixteen` テーマの切り替え

### 記事、タクソノミー

* `wp post list --field=post_title --post_type=page` 固定ページ記事の記事タイトル一覧を表示 ★★表示項目の複数指定どうする？--fieldはカンマじゃダメ(--post_typeはいけた)
* `wp term create category 'テスト' --slug=test` カテゴリ登録
* `wp term update category 4 --name=Sample --slug=sample` カテゴリ更新
* `wp user list` ユーザーの一覧

### wp-cli

* `wp cli version` バージョン表示(:q で抜ける)
* `wp cli info` 
* `wp cli check-update` アップデートがあるかチェック
* `wp cli update` wp-cliのアップデート。--nightly 付けるとナイトリービルド版(リリース前開発中の最新版)。エラーが出る場合、-allow-root オプション付けるとうまくいく？

### scaffold

* `wp scaffold vccw wordpress.dev --lang=ja`  
  コマンド一つで VCCW環境を構築(https://qiita.com/miya0001/items/687d142d714b1386a44f)
* `wp scaffold _s sample-theme --theme_name="Sample Theme" --author="John Doe"` _s ベースのテーマを生成
* `wp scaffold post-type movie --label=Movie --theme=simple-life` カスタム投稿タイプの雛形を生成。指定のテーマフォルダ内に post-types/movie.php が生成される
* `wp scaffold plugin sample-plugin` プラグインの雛形を生成

### テキスト置換

シリアライズされたデータも正常に置換してくれる。
下のサンプルは URL置換の例。
__※ URL末尾に/(スラッシュ)を入れないこと__
[WordPressの引っ越しに便利な wp search-replace – Gatespace's Blog](http://gatespace.jp/2014/12/02/wp-cli-wp-search-replace/)

1. `wp search-replace  --dry-run 'http://dev.example.com' 'https://example.com'` まずはドライランでチェック
2. `wp search-replace 'http://dev.example.com' 'https://example.com'` 置換する


### データベース操作

* `wp db export /var/www/html/db-backup/wordpress.sql` データベースのエクスポート [サンプル] (https://developer.wordpress.org/cli/commands/db/export/) ※仮想マシンなら共有フォルダを指定
* `wp db import /var/www/html/db-backup/wordpress.sql` データベースのインポート
* `wp db create` wp-config.php に基づき新しくデーターベースを作成
* `wp db drop` 存在するデータベースを削除
* `wp db reset` データベースからすべてのテーブルを削除
* `wp db columns wp_posts` 指定テーブルの情報を表示(例は wp_posts)
* `wp db cli` MySQL コンソールを開く [オプション](https://developer.wordpress.org/cli/commands/db/cli/)
* `wp db query` SQLクエリを実行
* `wp db check` データベースのステータスチェック
* `wp db tables` データベース中のテーブルを表示
* `wp db prefix` WordPressデータベースのプレフィックスを表示
* `wp db size` データベースのサイズを表示
* `wp db search キーワード` データベースから文字列検索 [オプション](https://developer.wordpress.org/cli/commands/db/search/)
* `wp db repair` データベースの修復
* `wp db optimize` データベースの最適化

* `wp db clean` $table_prefix の付いたテーブルを全削除

### その他

* `wp rewrite flush` リライトルール変更後に反映させるためのflush
* `wp help` `wp help cli` ヘルプ

### ホストマシン(Mac)から直接実行

仮想マシンにログインせず、ホストマシン(Mac)から直接実行することもできる  

`vagrant ssh -c "wp plugin list"`
`vagrant ssh -c "wp plugin update --all"`


参考サイト
------------------------------------------------------------

* [WP-CLI 公式](https://wp-cli.org/)
* [WP-CLI コマンド一覧 (公式)](https://developer.wordpress.org/cli/commands/)
* [VCCW 環境で WP-CLI をつかう | deadwood](http://www.d-wood.com/blog/2014/09/22_6859.html)