protected function _search($args, $assoc_args)
{
$term = $args[0];
$defaults = array('per-page' => 10, 'page' => 1, 'fields' => implode(',', array('name', 'slug', 'rating')));
$assoc_args = array_merge($defaults, $assoc_args);
$fields = array();
foreach (explode(',', $assoc_args['fields']) as $field) {
$fields[$field] = true;
}
$formatter = $this->get_formatter($assoc_args);
$api_args = array('per_page' => (int) $assoc_args['per-page'], 'page' => (int) $assoc_args['page'], 'search' => $term, 'fields' => $fields);
if ('plugin' == $this->item_type) {
$api = plugins_api('query_plugins', $api_args);
} else {
$api = themes_api('query_themes', $api_args);
}
if (is_wp_error($api)) {
\WP_CLI::error($api->get_error_message() . __(' Try again'));
}
$plural = $this->item_type . 's';
if (!isset($api->{$plural})) {
\WP_CLI::error(__('API error. Try Again.'));
}
$items = $api->{$plural};
$count = \WP_CLI\Utils\get_flag_value($api->info, 'results', 'unknown');
\WP_CLI::success(sprintf('Showing %s of %s %s.', count($items), $count, $plural));
$formatter->display_items($items);
}