Yшompv@тmpvY€YџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџРYkpvџџџџ€>•|€ Ykpv@tkpvџџџџF ›|€рYkpv„8`mpvimpvШimpv0lmpv pmpvptmpv˜umpv@јИЌA\\ qmpv@@ Оqv\€\џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ Zkpvџџџџ€>•|€ZkpvOkpvџџџџF ›|€@Zkpv__№qmpv@јИЌA__rmpv@0тmpv_€__0rmpv@rmpvXrmpv _ˆrmpv_џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ€Zkpvџџџџ€>•|€`ZkpvРZkpvџџџџF ›|€ ZkpvЏМqv`€`8smpv`smpv smpvPsmpv`шrmpv€smpv@`,ЌAaaИsmpv@Xтmpva€aџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ[kpvџџџџ€>•|€рZkpvрыmpvџџџџF ›|€ [kpvXtmpv@јИЌAee tmpv@€тmpve€e€eИtmpvШtmpvрtmpv@Јтmpvџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ`[kpvџџџџ€>•|€@[kpv0ьmpvџџџџF ›|€€[kpvbpv@‹cpv _mpvаpmpv@ Z~qvk@атmpvk@ШwЌAk@€~qvkk@vmpvkvmpv(vmpvџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџР[kpvџџџџ€>•|€ [kpv@5jpvџџџџF ›|€р[kpvШwЌAllјvmpv@ Оqvll wmpv lwmpv8wmpv„lwmpvmlHwmpv`wmpv…lџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ \kpvџџџџ€>•|€\kpvp5jpvџџџџF ›|€@\kpvpуmpvp@˜уmpvp€pPxmpvp(xmpv8xmpvhxmpvpxmpv˜xmpv@a“Aqqаxmpv@џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ€\kpvџџџџ€>•|€`\kpvhыmpvџџџџF ›|€ \kpv@a“Arr€ympv@шуmpvr€rr˜ympvЈympvРympvrpympv№ympv@рX~qvsџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџр\kpvџџџџ€>•|€Р\kpv 5jpvџџџџF ›|€]kpv€s˜zmpvЈzmpv@ жЛqvs@р qqvs€s№zmpvP{mpv@a“Ass8{mpvsРzmpvиzmpv{mpvџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ@]kpvџџџџ€>•|€ ]kpvИыmpvџџџџF ›|€`]kpv Z~qv˜vmpvШvmpv@@ukpv{@8фmpv{@ШwЌA{@`ІМqv{{x|mpv{H|mpv`|mpvиopvџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ ]kpvџџџџ€>•|€€]kpvPakpvџџџџF ›|€Р]kpv||0}mpv@ TЙqv||X}mpv |H}mpvp}mpv„|№}mpv@Р!Кqv}}Ш}mpv}р}mpvџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ^kpvџџџџ€>•|€р]kpv@^kpvџџџџF ›|€ ^kpv€€p~mpv@ифmpv€@'qqv€€€А~mpv€ˆ~mpv˜~mpvШ~mpv€`~mpvј~mpv@ˆRДAџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ€^kpvџџџџ€>•|€`^kpvPъmpvџџџџF ›|€ ^kpv mpv@Pхmpv€ are not allowed to make proxied oEmbed requests.' ), array( 'status' => rest_authorization_required_code() ) ); } return true; } /** * Callback for the proxy API endpoint. * * Returns the JSON object for the proxied item. * * @since 4.8.0 * * @see WP_oEmbed::get_html() * @global WP_Embed $wp_embed WordPress Embed object. * @global WP_Scripts $wp_scripts * * @param WP_REST_Request $request Full data about the request. * @return object|WP_Error oEmbed response data or WP_Error on failure. */ public function get_proxy_item( $request ) { global $wp_embed, $wp_scripts; $args = $request->get_params(); // Serve oEmbed data from cache if set. unset( $args['_wpnonce'] ); $cache_key = 'oembed_' . md5( serialize( $args ) ); $data = get_transient( $cache_key ); if ( ! empty( $data ) ) { return $data; } $url = $request['url']; unset( $args['url'] ); // Copy maxwidth/maxheight to width/height since WP_oEmbed::fetch() uses these arg names. if ( isset( $args['maxwidth'] ) ) { $args['width'] = $args['maxwidth']; } if ( isset( $args['maxheight'] ) ) { $args['height'] = $args['maxheight']; } // Short-circuit process for URLs belonging to the current site. $data = get_oembed_response_data_for_url( $url, $args ); if ( $data ) { return $data; } $data = _wp_oembed_get_object()->get_data( $url, $args ); if ( false === $data ) { // Try using a classic embed, instead. /* @var WP_Embed $wp_embed */ $html = $wp_embed->get_embed_handler_html( $args, $url ); if ( $html ) { // Check if any scripts were enqueued by the shortcode, and include them in the response. $enqueued_scripts = array(); foreach ( $wp_scripts->queue as $script ) { $enqueued_scripts[] = $wp_scripts->registered[ $script ]->src; } return (object) array( 'provider_name' => __( 'Embed Handler' ), 'html' => $html, 'scripts' => $enqueued_scripts, ); } return new WP_Error( 'oembed_invalid_url', get_status_header_desc( 404 ), array( 'status' => 404 ) ); } /** This filter is documented in wp-includes/class-wp-oembed.php */ $data->html = apply_filters( 'oembed_result', _wp_oembed_get_object()->data2html( (object) $data, $url ), $url, $args ); /** * Filters the oEmbed TTL value (time to live). * * Similar to the {@see 'oembed_ttl'} filter, but for the REST API * oEmbed proxy endpoint. * * @since 4.8.0 * * @param int $time Time to live (in seconds). * @param string $url The attempted embed URL. * @param array $args An array of embed request arguments. */ $ttl = apply_filters( 'rest_oembed_ttl', DAY_IN_SECONDS, $url, $args ); set_transient( $cache_key, $data, $ttl ); return $data; } }