| @@ -1,0 +1,47 @@ | ||
| 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 ); | |