summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/jetpack/modules/shortcodes/vine.php')
-rw-r--r--plugins/jetpack/modules/shortcodes/vine.php53
1 files changed, 39 insertions, 14 deletions
diff --git a/plugins/jetpack/modules/shortcodes/vine.php b/plugins/jetpack/modules/shortcodes/vine.php
index 444b9999..e1681622 100644
--- a/plugins/jetpack/modules/shortcodes/vine.php
+++ b/plugins/jetpack/modules/shortcodes/vine.php
@@ -1,9 +1,9 @@
<?php
/**
* Vine shortcode
- */
-
-/**
+ * The service is now archived, but existing embeds are still accessible.
+ *
+ * Examples:
* Vine embed code:
* <iframe class="vine-embed" src="https://vine.co/v/bjHh0zHdgZT" width="600" height="600" frameborder="0"></iframe>
* <script async src="//platform.vine.co/static/scripts/embed.js" charset="utf-8"></script>
@@ -15,22 +15,34 @@
* [embed]https://vine.co/v/bjHh0zHdgZT[/embed]
* [embed width="300"]https://vine.co/v/bjHh0zHdgZT[/embed]
* [embed type="postcard" width="300"]https://vine.co/v/bjHh0zHdgZT[/embed]
- **/
+ *
+ * @package Jetpack
+ */
+/**
+ * Handle Vine embeds.
+ *
+ * @param array $matches Results after parsing the URL using the regex in wp_embed_register_handler().
+ * @param array $attr Embed attributes.
+ * @param string $url The original URL that was matched by the regex.
+ * @param array $rawattr The original unmodified attributes.
+ * @return string The embed HTML.
+ */
function vine_embed_video( $matches, $attr, $url, $rawattr ) {
- static $vine_flag_embedded_script;
-
$max_height = 300;
$type = 'simple';
- // Only allow 'postcard' or 'simple' types
- if ( isset( $rawattr['type'] ) && $rawattr['type'] === 'postcard' ) {
+ // Only allow 'postcard' or 'simple' types.
+ if (
+ isset( $rawattr['type'] )
+ && 'postcard' === $rawattr['type']
+ ) {
$type = 'postcard';
}
$vine_size = Jetpack::get_content_width();
- // If the user enters a value for width or height, we ignore the Jetpack::get_content_width()
+ // If the user enters a value for width or height, we ignore the Jetpack::get_content_width().
if ( isset( $rawattr['width'] ) || isset( $rawattr['height'] ) ) {
// 300 is the minimum size that Vine provides for embeds. Lower than that, the postcard embeds looks weird.
$vine_size = max( $max_height, min( $attr['width'], $attr['height'] ) );
@@ -41,17 +53,30 @@ function vine_embed_video( $matches, $attr, $url, $rawattr ) {
}
$url = 'https://vine.co/v/' . $matches[1] . '/embed/' . $type;
- $vine_html = sprintf( '<span class="embed-vine" style="display: block;"><iframe class="vine-embed" src="%s" width="%s" height="%s" frameborder="0"></iframe></span>', esc_url( $url ), (int) $vine_size, (int) $vine_size );
+ $vine_html = sprintf(
+ '<span class="embed-vine" style="display: block;"><iframe class="vine-embed" src="%1$s" width="%2$d" height="%3$d" frameborder="0"></iframe></span>',
+ esc_url( $url ),
+ (int) $vine_size,
+ (int) $vine_size
+ );
- if ( $vine_flag_embedded_script !== true ) {
- $vine_html .= '<script async src="//platform.vine.co/static/scripts/embed.js" charset="utf-8"></script>';
- $vine_flag_embedded_script = true;
- }
+ wp_enqueue_script(
+ 'vine-embed',
+ 'https://platform.vine.co/static/scripts/embed.js',
+ array(),
+ JETPACK__VERSION,
+ true
+ );
return $vine_html;
}
wp_embed_register_handler( 'jetpack_vine', '#https?://vine.co/v/([a-z0-9]+).*#i', 'vine_embed_video' );
+/**
+ * Display the Vine shortcode.
+ *
+ * @param array $atts Shortcode attributes.
+ */
function vine_shortcode( $atts ) {
global $wp_embed;