did_convert_elements ) { return array(); } return array( self::$script_slug => self::$script_src ); } public function shortcode( $attr ) { $url = false; $instagram_id = false; if ( isset( $attr['url'] ) ) { $url = trim( $attr['url'] ); } if ( empty( $url ) ) { return ''; } $instagram_id = $this->get_instagram_id_from_url( $url ); return $this->render( array( 'url' => $url, 'instagram_id' => $instagram_id, ) ); } public function oembed( $matches, $attr, $url, $rawattr ) { return $this->render( array( 'url' => $url, 'instagram_id' => end( $matches ) ) ); } public function render( $args ) { $args = wp_parse_args( $args, array( 'url' => false, 'instagram_id' => false, ) ); if ( empty( $args['instagram_id'] ) ) { return AMP_HTML_Utils::build_tag( 'a', array( 'href' => esc_url( $args['url'] ), 'class' => 'amp-wp-embed-fallback' ), esc_html( $args['url'] ) ); } $this->did_convert_elements = true; return AMP_HTML_Utils::build_tag( 'amp-instagram', array( 'data-shortcode' => $args['instagram_id'], 'layout' => 'responsive', 'width' => $this->args['width'], 'height' => $this->args['height'], ) ); } private function get_instagram_id_from_url( $url ) { $found = preg_match( self::URL_PATTERN, $url, $matches ); if ( ! $found ) { return false; } return end( $matches ); } }