/** * Show multiple fields of an object. * * @param object|array Data to display * @param string Format to display the data in */ private function show_multiple_fields($data, $format) { $true_fields = array(); foreach ($this->args['fields'] as $field) { $true_fields[] = $this->find_item_key($data, $field); } foreach ($data as $key => $value) { if (!in_array($key, $true_fields)) { if (is_array($data)) { unset($data[$key]); } else { if (is_object($data)) { unset($data->{$key}); } } } } switch ($format) { case 'table': case 'csv': $rows = $this->assoc_array_to_rows($data); $fields = array('Field', 'Value'); if ('table' == $format) { self::show_table($rows, $fields); } else { if ('csv' == $format) { \WP_CLI\Utils\write_csv(STDOUT, $rows, $fields); } } break; case 'yaml': case 'json': \WP_CLI::print_value($data, array('format' => $format)); break; default: \WP_CLI::error("Invalid format: " . $format); break; } }
private function format($items) { $fields = $this->args['fields']; switch ($this->args['format']) { case 'count': if (!is_array($items)) { $items = iterator_to_array($items); } echo count($items); break; case 'ids': if (!is_array($items)) { $items = iterator_to_array($items); } echo implode(' ', $items); break; case 'table': self::show_table($items, $fields); break; case 'csv': \WP_CLI\Utils\write_csv(STDOUT, $items, $fields); break; case 'json': $out = array(); foreach ($items as $item) { $out[] = \WP_CLI\Utils\pick_fields($item, $fields); } echo json_encode($out); break; } }