WordPress at a glance
функция не описана

Requests_Transport_cURL::request_multiple() public WP 1.0

Send multiple requests simultaneously

It's a method of the class: Requests_Transport_cURL{}

Хуков нет.

Возвращает

Array. Array of Requests_Response objects (may contain Requests_Exception or string responses as well)

Использование

$Requests_Transport_cURL = new Requests_Transport_cURL();
$Requests_Transport_cURL->request_multiple( $requests, $options );
$requests(array) (required)
Request data
$options(array) (required)
Global options

Код Requests_Transport_cURL::request_multiple() WP 5.5.1

<?php
public function request_multiple($requests, $options) {
	// If you're not requesting, we can't get any responses ¯\_(ツ)_/¯
	if (empty($requests)) {
		return array();
	}

	$multihandle = curl_multi_init();
	$subrequests = array();
	$subhandles = array();

	$class = get_class($this);
	foreach ($requests as $id => $request) {
		$subrequests[$id] = new $class();
		$subhandles[$id] = $subrequests[$id]->get_subrequest_handle($request['url'], $request['headers'], $request['data'], $request['options']);
		$request['options']['hooks']->dispatch('curl.before_multi_add', array(&$subhandles[$id]));
		curl_multi_add_handle($multihandle, $subhandles[$id]);
	}

	$completed = 0;
	$responses = array();

	$request['options']['hooks']->dispatch('curl.before_multi_exec', array(&$multihandle));

	do {
		$active = false;

		do {
			$status = curl_multi_exec($multihandle, $active);
		}
		while ($status === CURLM_CALL_MULTI_PERFORM);

		$to_process = array();

		// Read the information as needed
		while ($done = curl_multi_info_read($multihandle)) {
			$key = array_search($done['handle'], $subhandles, true);
			if (!isset($to_process[$key])) {
				$to_process[$key] = $done;
			}
		}

		// Parse the finished requests before we start getting the new ones
		foreach ($to_process as $key => $done) {
			$options = $requests[$key]['options'];
			if (CURLE_OK !== $done['result']) {
				//get error string for handle.
				$reason = curl_error($done['handle']);
				$exception = new Requests_Exception_Transport_cURL(
								$reason,
								Requests_Exception_Transport_cURL::EASY,
								$done['handle'],
								$done['result']
							);
				$responses[$key] = $exception;
				$options['hooks']->dispatch('transport.internal.parse_error', array(&$responses[$key], $requests[$key]));
			}
			else {
				$responses[$key] = $subrequests[$key]->process_response($subrequests[$key]->response_data, $options);

				$options['hooks']->dispatch('transport.internal.parse_response', array(&$responses[$key], $requests[$key]));
			}

			curl_multi_remove_handle($multihandle, $done['handle']);
			curl_close($done['handle']);

			if (!is_string($responses[$key])) {
				$options['hooks']->dispatch('multiple.request.complete', array(&$responses[$key], $key));
			}
			$completed++;
		}
	}
	while ($active || $completed < count($subrequests));

	$request['options']['hooks']->dispatch('curl.after_multi_exec', array(&$multihandle));

	curl_multi_close($multihandle);

	return $responses;
}