WP-CLIの面白い機能

WordPress Advent Calendar 2013 全部オレ 18日目のどうにかして俺です。

WP-CLIってご存知でしょうか? ご存じないって方は「コマンドラインから WordPress を操作する wp-cli 初級編 | dogmap.jp」とか「WP-CLIをMAMP環境で使う」とか「WP-CLIでの各種セットアップ例 – 超高速 WordPress AMI 網元」とか「wp-cliの使い方: その壱 – インストールと簡単な使い方の例 | わーどぷれすっ!」をお読みください。

まぁWordPressのインストールとかアップグレードとかコマンドラインからできるよ、っていうのが大きいんですが、他にもいろいろ機能があるのでご紹介。

wp scaffold

「scaffold」とは名刺としては建築の足場とか動詞としては「足場を組む」という意味で、WP-CLIでは基本的なコード(ひな形)を生成してくれます。

wp scaffoldのサブコマンドは今のところ6個あります:

  • _s
  • child-theme
  • plugin
  • plugin-tests
  • post-type
  • taxonomy

例えば

wp scaffold _s poppopo

を実行するとWordPressのテーマの「_s」というスターターテーマ※を「poppopo」というテーマ名で作ってくれます。

スターターテーマ _s を使ってWordPressのテーマをつくる(準備編) | Gatespace’s Blog

wp scaffold post-type puppupu --theme

を実行するとカレントテーマのフォルダ内に「post-types」というフォルダを作ってくれて、その中に「puppupu.php」というカスタムポストタイプのひな形を作ってくれるので、それをエディタとかで編集します。

ほかにもオプションがあるので引数なしで

wp scaffold post-type

と打ってみて確認してみるとよいです。

他のサブコマンドも

wp help scaffold <サブコマンド>

でヘルプを読んで見るといいことがあるかも知れません(ないかもしれないけど)。

wp import

WordPress eXtended RSS (WXR)ファイル(通常はWordPressのエクスポート機能でエクスポートされたファイル)を読み込みます。

もちろん管理画面からもできますが、コマンドラインからの手軽です。例えばWordPressの日本語のテストデータを読み込むには、

wget https://raw.github.com/jawordpressorg/theme-test-data-ja/master/wordpress-theme-test-date-ja.xml
wp plugin activate wordpress-importer
wp import wordpress-theme-test-date-ja.xml --authors=create

とするとよかです。

書式は

wp import <file> --authors=<authors> [--skip=<data-type>]

です。

wp post generate

投稿を生成します。

例えば

wp post generate --count=100000

で空の投稿を100000個生成します。

コンテンツも自動で入れることもできるので詳しくは

wp help post generate

と打ってパラメータとか書式とかを見てみるとよかばい。

wp user generate

ユーザーを生成します。

例えば

wp user generate --count=1000

で仮のユーザーアカウントを1000個作ります。

wp user import-csv

CSVファイルからユーザーを読み込んでアカウントを作成します。

csvファイルの例:

user_login,user_email,display_name,role
bobjones,bobjones@domain.com,Bob Jones,contributor
newuser1,newuser1@domain.com,New User,author
existinguser,existinguser@domain.com,Existing User,administrator

をusers.csvとして保存して

wp user import-csv /path/to/file/users.csv

とかして読み込みます。

csvファイルの一番上の

user_login,user_email,display_name,role

は必須です。あとは、、、見れば分かるよね?

他にも面白い機能があったら教えてね♥

あ、あとこちらもよろしく!