WP_CLI\Formatter::display_items PHP Метод

display_items() публичный Метод

Display multiple items according to the output arguments.
public display_items ( array $items )
$items array
    public function display_items($items)
    {
        if ($this->args['field']) {
            $this->show_single_field($items, $this->args['field']);
        } else {
            if (in_array($this->args['format'], array('csv', 'json', 'table'))) {
                $item = is_array($items) && !empty($items) ? array_shift($items) : false;
                if ($item && !empty($this->args['fields'])) {
                    foreach ($this->args['fields'] as &$field) {
                        $field = $this->find_item_key($item, $field);
                    }
                    array_unshift($items, $item);
                }
            }
            if (in_array($this->args['format'], array('table', 'csv'))) {
                if (is_object($items) && is_a($items, 'Iterator')) {
                    $items = \WP_CLI\Utils\iterator_map($items, array($this, 'transform_item_values_to_json'));
                } else {
                    $items = array_map(array($this, 'transform_item_values_to_json'), $items);
                }
            }
            $this->format($items);
        }
    }

Usage Example

Пример #1
0
 /**
  * List all metadata associated with an object.
  *
  * <id>
  * : ID for the object.
  *
  * [--keys=<keys>]
  * : Limit output to metadata of specific keys.
  *
  * [--fields=<fields>]
  * : Limit the output to specific row fields. Defaults to id,meta_key,meta_value.
  *
  * [--format=<format>]
  * : Accepted values: table, csv, json, count. Default: table
  *
  * @subcommand list
  */
 public function list_($args, $assoc_args)
 {
     list($object_id) = $args;
     $keys = !empty($assoc_args['keys']) ? explode(',', $assoc_args['keys']) : array();
     $object_id = $this->check_object_id($object_id);
     $metadata = get_metadata($this->meta_type, $object_id);
     if (!$metadata) {
         $metadata = array();
     }
     $items = array();
     foreach ($metadata as $key => $values) {
         // Skip if not requested
         if (!empty($keys) && !in_array($key, $keys)) {
             continue;
         }
         foreach ($values as $item_value) {
             $item_value = maybe_unserialize($item_value);
             $items[] = (object) array("{$this->meta_type}_id" => $object_id, 'meta_key' => $key, 'meta_value' => $item_value);
         }
     }
     if (!empty($assoc_args['fields'])) {
         $fields = explode(',', $assoc_args['fields']);
     } else {
         $fields = $this->get_fields();
     }
     $formatter = new \WP_CLI\Formatter($assoc_args, $fields, $this->meta_type);
     $formatter->display_items($items);
 }
All Usage Examples Of WP_CLI\Formatter::display_items