Alert: This function’s access is marked private. This means it is not intended for use by plugin or theme developers, only in other core functions. It is listed here for completeness.
WP_REST_URL_Details_Controller::get_icon() WordPress Method
The WP_REST_URL_Details_Controller::get_icon() method is used to get the icon for a given URL.
WP_REST_URL_Details_Controller::get_icon( string $html, string $url ) #
Parses the site icon from the provided HTML.
Parameters
- $html
(string)(Required)The HTML from the remote website at URL.
- $url
(string)(Required)The target website URL.
Return
(string) The icon URI on success. Empty string if not found.
Source
File: wp-includes/rest-api/endpoints/class-wp-rest-url-details-controller.php
308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 | private function get_icon( $html , $url ) { // Grab the icon's link element. $pattern = '#<link\s[^>]*rel=(?:[\"\']??)\s*(?:icon|shortcut icon|icon shortcut)\s*(?:[\"\']??)[^>]*\/?>#isU' ; preg_match( $pattern , $html , $element ); if ( empty ( $element [0] ) || ! is_string ( $element [0] ) ) { return '' ; } $element = trim( $element [0] ); // Get the icon's href value. $pattern = '#href=([\"\']??)([^\" >]*?)\\1[^>]*#isU' ; preg_match( $pattern , $element , $icon ); if ( empty ( $icon [2] ) || ! is_string ( $icon [2] ) ) { return '' ; } $icon = trim( $icon [2] ); // If the icon is a data URL, return it. $parsed_icon = parse_url ( $icon ); if ( isset( $parsed_icon [ 'scheme' ] ) && 'data' === $parsed_icon [ 'scheme' ] ) { return $icon ; } // Attempt to convert relative URLs to absolute. if ( ! is_string ( $url ) || '' === $url ) { return $icon ; } $parsed_url = parse_url ( $url ); if ( isset( $parsed_url [ 'scheme' ] ) && isset( $parsed_url [ 'host' ] ) ) { $root_url = $parsed_url [ 'scheme' ] . '://' . $parsed_url [ 'host' ] . '/' ; $icon = WP_Http::make_absolute_url( $icon , $root_url ); } return $icon ; } |
Expand full source codeCollapse full source codeView on TracView on GitHub
Changelog
Version | Description |
---|---|
5.9.0 | Introduced. |