VCCW 1.7 wp-cliのパワーアップやテーマレビューのための機能を追加しました。

いまWordCamp San Franciscoに参加するためにサンフランシスコに来ておりまして、この記事はサンフランシスコ市内のホテルで書いています。

WordCamp San Franciscoは、さすがAutomatticさんのお膝元でやるだけあって、以前から名前を知ってる開発者さんにあったりしてミーハーにキャーキャー喜んでたんですが、それについてはいつかまた書きます。

今回、WordCamp San Franciscoでは、旅費の支援があって世界中から大勢のコントリビューターさんたちが集まりました。

そのため、たまってた懸案を一気に片付けるぞーおらおらー!みたいなそういう感じで、以前にWordCamp関西でやったコントリビューターデイというイベントが3日連続であったんです。

そこで、僕はコアにパッチを書いたり、テーマレビューチームのための環境構築に協力したいなーということでいろいろやっておりまして、VCCWをそれにあわせて改善しました。

そんなわけで、新しい機能がもりだくさんの新しいVCCWをご紹介します!

VCCW

http://vccw.cc/

テーマレビューのための新機能

WordPressの公式ディレクトリにテーマを登録するにはテーマレビューチームによるレビューを受けて、それに合格する必要があります。

ここではそのための新機能をご紹介します。

vagrant up時に以下の様に環境変数を使用してテーマを指定できるようになりました。

wp_theme=http://example.com/ore/no/theme.zip vagrant up

もちろんプロビジョンの時にも使えます。

wp_theme=http://example.com/ore/no/theme.zip vagrant provision

これをつかうと気軽にいろいろなテーマを試せるので、意外と便利です。ぜひお試しを!

他にも言語やWordPressのバージョンを変えることもできます。

wp_version=3.5.2 vagrant provision

とか

wp_lang=en vagrant provision

とか。

普通にvagrant provisionすればVagrantfileに記述したとおりに元に戻りますので、これは開発者がさくっと違う環境でテストするには最強じゃないかと思います。

 

また、今回からVagrantfile.theme-reviewというファイルが同梱されています。

これはテーマレビュワーが公式ディレクトリ用のテーマをレビューする際のテスト用のWordPress環境を再現するためのVagrantfileです。

テーマを開発してる人たちは、一度このVagrantfileを使ってテーマの動作を確認するとレビュワーさんとのやりとりがスムーズになるかもしれません。

 

ほぼすべての設定をVagrantfileで管理できるように!

今回のバージョンアップでWordPressのほぼすべての設定をVagrantfileにあらかじめ記述できるようになりました。

たとえば、上述のテーマレビューチームのみなさんは以下のような設定のWordPressでテーマのレビューを行ってるそうです。

WP_OPTIONS           = {
    blogname: "This is the long blog name for the theme review",
    blogdescription: "This is a very very long tagline to reviewed in theme review proccess.",
    posts_per_page: "5",
    thread_comments: "1",
    thread_comments_depth: "3",
    page_comments: "1",
    comments_per_page: "5",
    large_size_w: "",
    large_size_h: ""
}

 

Vagrantfile内にWP_OPTIONSという項目があるので、そこに上の例のように記述してください。

パーマリンク設定もあらかじめ指定できます。

WP_REWRITE_STRUCTURE = '/archives/%post_id%'

 

wp-cliにdictatorというサブコマンドを追加

このdictatorというコマンドは、wp-cliのリードディベロッパーのダニエルさんの個人的なプロジェクトで、WordPressの状態を.ymlファイルで書き出したり、それをインポートしたり、現在の状態との差分を確認するためのコマンドです。

https://github.com/danielbachhuber/dictator

これを利用するとWordPressの現在の設定を簡単に書きだすことができます。

$ wp dictator export site /vagrant/site.yml
Success: State written to file.

書きだされた結果は以下のような感じです。

state: site
settings:
  title: This is the long blog name for the theme review
  description: This is a very very long tagline to reviewed in theme review proccess. Yeah!
  admin_email: vagrant@example.com
  timezone:
  date_format: F j, Y
  time_format: g:i a
  public: true
  posts_per_page: 5
  posts_per_feed: 10
(以下省略)

これまで意外とできなかったことの1つがWordPressの設定の共有です。

これを使用するとWordPressの設定を書き出し、それをGitHubで管理することも可能になりますので、とても便利ですね。

 

さらにdictatorを使用すると、現在の設定と以前に書きだした.ymlとの差分を比較することもできます。これにはびっくり!

$ wp dictator compare /vagrant/site.yml
settings:
  option: 
  - title: Hello World!
  + title: This is the long blog name for the theme review
    active_plugins:

上の例では、以前に書きだしたsite.ymlに対して、タイトルがHello World!に変わっていることがわかります。

 

プリインストール済みのBoxを用意しました。

これは、いろいろと賛否両論、いや否のほうが多いかもしれないんですが。。。

テーマレビューチームの皆さんが住んでる地域(Automatticも含めて。笑)は、ネットの環境がひどく貧弱なんですよね。

そこで、特急でとりあえずプロビジョニングしたいという人たちのために、VCCWをひととおりすませたあとのBoxを用意しました。

VM_BOX               = ENV["wp_box"] || "chef/centos-6.5-i386"
# VM_BOX               = "miya0001/vccw" # pre-installed box

Vagrantfileの上の行を以下のように修正すると2回目以降のプロビジョニングが早くなります。

# VM_BOX               = ENV["wp_box"] || "chef/centos-6.5-i386"
VM_BOX               = "miya0001/vccw" # pre-installed box

最初のboxのダウンロードにはすごく時間がかかりますが、2回目以降のvagrant upは、5分ぐらいで完了すると思います。

WordPressも含めたインストール済みのパッケージは、vagrant up時に自動的に最新版に変わりますので、機能上は今までと変更ありません。