[VCCW] VCCW 環境で WP-CLI をつかう

VCCW は WP-CLI ready なので、そのまま利用できます。

[markdown]
## インストール

インストールは、下記を参考ください。

> * [WordPress 用の Vagrant 環境 VCCW を利用する | deadwood](https://www.d-wood.com/blog/2014/08/27_6674.html)

試しにサンプルコマンドを実行してみます。

“`prettyprinted
% vagrant ssh
[vagrant@wordpress ~]$ pwd
/home/vagrant
[vagrant@wordpress ~]$ cd /var/www/
[vagrant@wordpress www]$ wp term create category Apple –description=”A type of fruit”
Error: This does not seem to be a WordPress install.
Pass –path=`path/to/wordpress` or run `wp core download`.
“`

/wordpress ディレクトリで `wp` コマンドを実行する必要があるんですね。
ということで、ログインから利用前の段階まではこんな感じですね。

“`prettyprinted
% vagrant ssh
$ cd /var/www/html
“`

## 参考資料

こちらを確認しながら必要なコマンドを実行してみます。

> * [Built-in Commands | WP-CLI](http://wp-cli.org/commands/)

WP-CLI (WordBench Sendai 20140628) from Kazue Igarashi

どうもオプションで渡す引数は WP_Query で扱うもののようです。

> * [関数リファレンス/WP Query – WordPress Codex 日本語版](http://wpdocs.sourceforge.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/WP_Query#.E6.8A.95.E7.A8.BF.EF.BC.86.E5.9B.BA.E5.AE.9A.E3.83.9A.E3.83.BC.E3.82.B8.E3.83.91.E3.83.A9.E3.83.A1.E3.83.BC.E3.82.BF)

こちらが参考になりました。

> * [wp-cli | admin note](http://admnote.paix.jp/2014/06/wp-cli/)

## プラグインの有効化

VCCW の Vagrantfile でプラグイン foo をインストール。
下記で有効化。

> * [wp plugin activate | WP-CLI](http://wp-cli.org/commands/plugin/activate/)

“`prettyprinted
$ wp plugin activate foo
“`

## テーマの有効化

foo というテーマに切り替える。

> * [wp theme activate | WP-CLI](http://wp-cli.org/commands/theme/activate/)

“`prettyprinted
$ wp theme activate foo
“`

## パーマリンクを設定する

> * [wp rewrite structure | WP-CLI](http://wp-cli.org/commands/rewrite/structure/)

“`prettyprinted
$ wp rewrite structure ‘/%category%/%post_id%.html’ –category-base=’.’
“`

## ユーザーのプロフィールを更新する

「ビジュアルリッチエディターを使用しない」にチェックを入れたかったんですが、ぱっとみてどこか分からないのでとりあえず保留。
コメント欄で教えて頂きました。ありがとうございます。

> * [wp user meta | WP-CLI](http://wp-cli.org/commands/user/meta/)

例えば admin アカウントを変更したい場合。

“`prettyprinted
$ wp user meta update admin rich_editing false
“`

設定画面に対応する他項目も、下記で確認できました。

“`prettyprinted
$ wp user meta list 1
“`

## カテゴリーを登録する

こんな形で slug を指定。日本語もいけるんですね。

> * [wp term create | WP-CLI](http://wp-cli.org/commands/term/create/)

“`prettyprinted
$ wp term create category ‘テスト’ –slug=test
“`

更新はこんな形。

“`prettyprinted
$ wp term update category 4 –name=Sample –slug=sample
“`

## 投稿を登録する

投稿と固定ページは、同じ `wp post create` コマンド。

> * [wp post create | WP-CLI](http://wp-cli.org/commands/post/create/)

オプションで渡せる args が分からないので、こちらを見てみました。

> * [wp-cli/post.php at master · wp-cli/wp-cli](https://github.com/wp-cli/wp-cli/blob/master/php/commands/post.php)

公開、カテゴリ、タイトル、コンテンツを指定し、投稿を作成します。

“`prettyprinted
$ wp post create –post_status=publish –post_category=2 –post_title=’sample post’ –post_content=’Lorem ipsum dolor sit amet.’
“`

ファイルも渡せます。

“`prettyprinted
$ wp post create ./sample.txt –post_status=publish –post_category=2 –post_title=’sample post from .txt’
“`

## 固定ページを登録する

上記に `–post_type=page` を追加すると、固定ページの登録になります。

“`prettyprinted
$ wp post create ./sample.txt –post_type=page –post_status=publish –post_title=’sample page from .txt’
“`

### スラッグ

ただ `page slug` の指定方法が見当たらなくて困りました。
最初に上記の `–post_title=` で slug を指定し作成、さらに `update` すれば良いけれども、最新の post_id が必要。

> * [wp post update | WP-CLI](http://wp-cli.org/commands/post/update/)

“`prettyprinted
$ wp post update 8 –post_title=’日本語のタイトル’
“`

まっさらな状態からであれば、id=1 がサンプルの投稿、id=2 がサンプルのページなので、id=3 から決めうちすれば良いですが。
id のリストはこの辺で手に入りそうです。

> * [wp post list | WP-CLI](http://wp-cli.org/commands/post/list/)

シェルスクリプトで実行すると想定して、こんな関数を用意すればいけそうかな。

“`bash
function latest_id() {
ARRAY=(`wp post list –post_type=page,post –format=ids`)
echo $ARRAY
}
wp post create ./sample.txt –post_type=page –post_status=publish –post_title=’sample’ –post_parent=21
ID=`latest_id`
wp post update $ID –post_title=’サンプル’
wp post meta set $ID _wp_page_template sample.php
“`

要研究。

### 親ページ

親ページの設定は `–post_parent=2` オプションで指定可能でした。

### テンプレート

テンプレートの設定は、`meta` コマンドでした。

> * [wp post meta | WP-CLI](http://wp-cli.org/commands/post/meta/)

“`prettyprinted
$ wp post meta set 11 _wp_page_template menu.php
“`

## 投稿にアイキャッチ画像を登録する

> * [wp media import | WP-CLI](http://wp-cli.org/commands/media/import/)

“`prettyprinted
$ wp media import ./thumbnails/01.jpg –post_id=1 –featured_image
“`

## DBを操作する

この辺は試してないですが、インポート・エクスポートなど。

> * [wp db | WP-CLI](http://wp-cli.org/commands/db/)
> * [wp import | WP-CLI](http://wp-cli.org/commands/import/)
> * [wp export | WP-CLI](http://wp-cli.org/commands/export/)

DB内のテキストの検索・置換。

> * [wp search-replace | WP-CLI](http://wp-cli.org/commands/search-replace/)
[/markdown]