WP-CLIアドベントカレンダーの18日目です。
昨日は @tecking さんの「ひっくり返るくらい超絶便利な wp media regenerate」でした。
今回は前回の続きです。
前回 wp-cli 対応させる方法について説明しましたが、一点出力フォーマットについて触れていませんでした。
てことで、今回はそのへんについて
と言っても、何も難しいことはなくて \WP_CLI\Utils\format_items( $format, $items, $fields )
を使用するだけです。
パラメータは以下の通り
- @param string $format Format to use: 'table', 'json', 'csv', 'ids', 'count'
- @param array $items Data to output
- @param array|string $fields Named fields for each item of data. Can be array or comma-separated list
選べるフォーマットは 'table', 'json', 'csv', 'ids', 'count' 、どの形式を使用するかを第一引数に渡します。
第二引数には実際に表示するデータを、第三引数にはデータに付与するラベルを渡します。
Nginx Cache Controler では、以下のように実装しています。
/** * Show list of all proxy caches. * * ## EXAMPLES * * wp nginx list * * @subcommand list */ function _list($args, $assoc_args) { $format = strtolower(isset($assoc_args['format']) ? $assoc_args['format'] : 'csv'); $nginxchampuru = NginxChampuru::get_instance(); $items = (array)$nginxchampuru->get_cached_objects(); $fields = array( "cache_id", "post_type", "cache_url", "cache_saved"); switch ($format) { case 'csv': case 'json': \WP_CLI\Utils\format_items( $format, $items, $fields ); break; default: WP_CLI::error(sprintf('Invalid format "%s".', $format)); } exit; }
簡単ですね。
wp-cli では、他にも利用しやすそうなユーティリティ関数を用意しておいてくれています。
ake_progress_bar( $message, $count )
とか、http_request( $method, $url, $data = null, $headers = array(), $options = array() )
とか良さげな関数が色々ありますね。
ソースを確認してみると良いでしょう。
https://github.com/wp-cli/wp-cli/blob/master/php/utils.php
ってわけで、WP-CLI Advent Calendar 2014 18日目は終わりです。
金曜日の日直は、先週サボって自称西川さんに代打してもらっていた @shinichiN さんです、ひゃっっっっっっほーーー!