Code Coverage |
||||||||||
Lines |
Functions and Methods |
Classes and Traits |
||||||||
| Total | |
25.00% |
4 / 16 |
|
100.00% |
1 / 1 |
CRAP | n/a |
0 / 0 |
|
| jetpack_oembed_timeout_override | |
100.00% |
4 / 4 |
|
100.00% |
1 / 1 |
3 | |||
| 1 | <?php |
| 2 | /** |
| 3 | * Extra oEmbed providers that we use on wpcom for feature parity. |
| 4 | * |
| 5 | * This file will be loaded even when you don't use the Shortcodes feature, |
| 6 | * as these embeds are considered safe to use on any site |
| 7 | * (and may end up embedded in Core in the future). |
| 8 | * |
| 9 | * @package automattic/jetpack |
| 10 | */ |
| 11 | |
| 12 | if ( ! defined( 'ABSPATH' ) ) { |
| 13 | exit( 0 ); |
| 14 | } |
| 15 | |
| 16 | wp_oembed_add_provider( 'https://me.sh/*', 'https://me.sh/oembed?format=json' ); |
| 17 | wp_oembed_add_provider( '#https?://(www\.)?gfycat\.com/.*#i', 'https://api.gfycat.com/v1/oembed', true ); |
| 18 | wp_oembed_add_provider( '#https?://[^.]+\.(wistia\.com|wi\.st)/(medias|embed)/.*#', 'https://fast.wistia.com/oembed', true ); |
| 19 | wp_oembed_add_provider( '#https?://sketchfab\.com/.*#i', 'https://sketchfab.com/oembed', true ); |
| 20 | wp_oembed_add_provider( '#https?://(www\.)?icloud\.com/keynote/.*#i', 'https://iwmb.icloud.com/iwmb/oembed', true ); |
| 21 | wp_oembed_add_provider( '#https?://(www\.)?icloud\.com\.cn/keynote/.*#i', 'https://iwmb.icloud.com.cn/iwmb/oembed', true ); |
| 22 | wp_oembed_add_provider( '#https?://((song|album|artist|pods|playlist)\.link|odesli\.com?|mylink\.page)/.*#', 'https://odesli.co/oembed', true ); |
| 23 | wp_oembed_add_provider( '#https?://(www\.)?loom\.com/share/.*#i', 'https://www.loom.com/v1/oembed', true ); |
| 24 | |
| 25 | /** |
| 26 | * Filters the HTTP request timeout value so that we can increase the timeout for iCloud oEmbeds. |
| 27 | * |
| 28 | * @param int $timeout The timeout value in seconds. |
| 29 | * @param string $url The URL to fetch. |
| 30 | * |
| 31 | * @return int The timeout value in seconds. |
| 32 | */ |
| 33 | function jetpack_oembed_timeout_override( $timeout, $url = '' ) { |
| 34 | if ( |
| 35 | is_string( $url ) |
| 36 | && str_contains( $url, 'iwmb.icloud.com' ) |
| 37 | ) { |
| 38 | return 10; |
| 39 | } |
| 40 | return $timeout; |
| 41 | } |
| 42 | |
| 43 | // TODO: Remove this. This should hopefully be a temporary hack since Apple's oEmbed often seems to take more than 5 seconds to respond. 10 is an arbitrary number of seconds that seems to work better. |
| 44 | add_filter( 'http_request_timeout', 'jetpack_oembed_timeout_override', 10, 2 ); |
| 45 | |
| 46 | // WordPress core only registers pca.st, not pcast.pocketcasts.net. |
| 47 | wp_oembed_add_provider( '#https?://pcast\.pocketcasts\.net/.+#i', 'https://pcast.pocketcasts.net/oembed.json', true ); |