wp-includes/SimplePie/src/Locator.php:55Used for feed auto-discovery
$useragentpublic$timeoutpublic$filepublic$localpublic$elsewherepublic$cached_entitiespublic$http_basepublic$basepublic$base_locationpublic$checked_feedspublic$max_checked_feedspublic$force_fsockopenpublic$curl_optionspublic$dompublic$registryprotectedclass Locator implements RegistryAware{ public $useragent; public $timeout; public $file; public $local = []; public $elsewhere = []; public $cached_entities = []; public $http_base; public $base; public $base_location = 0; public $checked_feeds = 0; public $max_checked_feeds = 10; public $force_fsockopen = false; public $curl_options = []; public $dom; protected $registry; public function __construct(\SimplePie\File $file, $timeout = 10, $useragent = null, $max_checked_feeds = 10, $force_fsockopen = false, $curl_options = []) { $this->file = $file; $this->useragent = $useragent; $this->timeout = $timeout; $this->max_checked_feeds = $max_checked_feeds; $this->force_fsockopen = $force_fsockopen; $this->curl_options = $curl_options; if (class_exists('DOMDocument') && $this->file->body != '') { $this->dom = new \DOMDocument(); set_error_handler(['SimplePie\Misc', 'silence_errors']); try { $this->dom->loadHTML($this->file->body); } catch (\Throwable $ex) { $this->dom = null; } restore_error_handler(); } else { $this->dom = null; } } public function set_registry(\SimplePie\Registry $registry)/* : void */ { $this->registry = $registry; } public function find($type = \SimplePie\SimplePie::LOCATOR_ALL, &$working = null) { if ($this->is_feed($this->file)) { return $this->file; } if ($this->file->method & \SimplePie\SimplePie::FILE_SOURCE_REMOTE) { $sniffer = $this->registry->create(Content\Type\Sniffer::class, [$this->file]); if ($sniffer->get_type() !== 'text/html') { return null; } } if ($type & ~\SimplePie\SimplePie::LOCATOR_NONE) { $this->get_base(); } if ($type & \SimplePie\SimplePie::LOCATOR_AUTODISCOVERY && $working = $this->autodiscovery()) { return $working[0]; } if ($type & (\SimplePie\SimplePie::LOCATOR_LOCAL_EXTENSION | \SimplePie\SimplePie::LOCATOR_LOCAL_BODY | \SimplePie\SimplePie::LOCATOR_REMOTE_EXTENSION | \SimplePie\SimplePie::LOCATOR_REMOTE_BODY) && $this->get_links()) { if ($type & \SimplePie\SimplePie::LOCATOR_LOCAL_EXTENSION && $working = $this->extension($this->local)) { return $working[0]; } if ($type & \SimplePie\SimplePie::LOCATOR_LOCAL_BODY && $working = $this->body($this->local)) { return $working[0]; } if ($type & \SimplePie\SimplePie::LOCATOR_REMOTE_EXTENSION && $working = $this->extension($this->elsewhere)) { return $working[0]; }2 changes between 6.7.7 and 7.1.0.
Signature, return type and hooks compared across 5 parsed releases.
set_http_client() added.verified against sourceget_http_client() added.verified against sourcesrc/wp-includes/SimplePie/src/Locator.php, and regenerated for each WordPress release so it tracks the code rather than a snapshot of it.