[VCCW] VCCW 環境で WP-CLI をつかう
VCCW は WP-CLI ready なので、そのまま利用できます。
Contents
インストール
インストールは、下記を参考ください。
試しにサンプルコマンドを実行してみます。
% 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
コマンドを実行する必要があるんですね。
ということで、ログインから利用前の段階まではこんな感じですね。
% vagrant ssh
$ cd /var/www/html
参考資料
こちらを確認しながら必要なコマンドを実行してみます。
どうもオプションで渡す引数は WP_Query で扱うもののようです。
こちらが参考になりました。
プラグインの有効化
VCCW の Vagrantfile でプラグイン foo をインストール。
下記で有効化。
$ wp plugin activate foo
テーマの有効化
foo というテーマに切り替える。
$ wp theme activate foo
パーマリンクを設定する
$ wp rewrite structure '/%category%/%post_id%.html' --category-base='.'
ユーザーのプロフィールを更新する
「ビジュアルリッチエディターを使用しない」にチェックを入れたかったんですが、ぱっとみてどこか分からないのでとりあえず保留。
コメント欄で教えて頂きました。ありがとうございます。
例えば admin アカウントを変更したい場合。
$ wp user meta update admin rich_editing false
設定画面に対応する他項目も、下記で確認できました。
$ wp user meta list 1
カテゴリーを登録する
こんな形で slug を指定。日本語もいけるんですね。
$ wp term create category 'テスト' --slug=test
更新はこんな形。
$ wp term update category 4 --name=Sample --slug=sample
投稿を登録する
投稿と固定ページは、同じ wp post create
コマンド。
オプションで渡せる args が分からないので、こちらを見てみました。
公開、カテゴリ、タイトル、コンテンツを指定し、投稿を作成します。
$ wp post create --post_status=publish --post_category=2 --post_title='sample post' --post_content='Lorem ipsum dolor sit amet.'
ファイルも渡せます。
$ wp post create ./sample.txt --post_status=publish --post_category=2 --post_title='sample post from .txt'
固定ページを登録する
上記に --post_type=page
を追加すると、固定ページの登録になります。
$ 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 8 --post_title='日本語のタイトル'
まっさらな状態からであれば、id=1 がサンプルの投稿、id=2 がサンプルのページなので、id=3 から決めうちすれば良いですが。
id のリストはこの辺で手に入りそうです。
シェルスクリプトで実行すると想定して、こんな関数を用意すればいけそうかな。
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 set 11 _wp_page_template menu.php
投稿にアイキャッチ画像を登録する
$ wp media import ./thumbnails/01.jpg --post_id=1 --featured_image
DBを操作する
この辺は試してないですが、インポート・エクスポートなど。
DB内のテキストの検索・置換。