File Editor
Directories:
.. (Back)
css
images
img
js
Files:
archiveorg-book.php
archiveorg.php
archives.php
bandcamp.php
brightcove.php
cartodb.php
class.filter-embedded-html-objects.php
codepen.php
crowdsignal.php
dailymotion.php
facebook.php
flatio.php
flickr.php
getty.php
gist.php
googleapps.php
googlemaps.php
googleplus.php
gravatar.php
houzz.php
hulu.php
instagram.php
kickstarter.php
mailchimp.php
medium.php
mixcloud.php
pinterest.php
presentations.php
quiz.php
recipe.php
scribd.php
sitemap.php
slideshare.php
slideshow.php
soundcloud.php
spotify.php
ted.php
tweet.php
twitchtv.php
twitter-timeline.php
unavailable.php
untappd-menu.php
upcoming-events.php
ustream.php
videopress.php
vimeo.php
vine.php
vr.php
wordads.php
wufoo.php
youtube.php
Create New File
Create
Edit File: medium.php
<?php /** * Embed support for Medium * * Supported formats: * - Profiles: https://medium.com/@jeherve * - Stories: https://medium.com/@jeherve/this-is-a-story-19f582daaf5b * - And all the above in shortcode formats: * [medium url="https://medium.com/@jeherve/this-is-a-story-19f582daaf5b" width="100%" border="false" collapsed="true"] * * @package Jetpack */ // Faux-oembed support for Medium permalinks. wp_embed_register_handler( 'medium', '#^https?://medium.com/([a-zA-z0-9-_@]+)#', 'jetpack_embed_medium_oembed' ); /** * Callback to modify output of embedded Medium posts. * * @param array $matches Regex partial matches against the URL passed. * @param array $attr Attributes received in embed response. * @param array $url Requested URL to be embedded. */ function jetpack_embed_medium_oembed( $matches, $attr, $url ) { $attr = jetpack_embed_medium_args( $attr ); $attr['url'] = $url; return jetpack_embed_medium_embed_html( $attr ); } /** * Return custom markup to display a Medium profile, collection, or story. * * @param array $args Attributes received in embed response. */ function jetpack_embed_medium_embed_html( $args ) { $args = jetpack_embed_medium_args( $args ); if ( empty( $args['url'] ) ) { return; } $args['type'] = jetpack_embed_medium_get_embed_type( $args['url'] ); if ( 'collection' === $args['type'] ) { return sprintf( '<a href="%1$s" target="_blank" rel="noopener noreferrer">%2$s</a>', esc_url( $args['url'] ), esc_html__( 'View this collection on Medium.com', 'jetpack' ) ); } wp_enqueue_script( 'medium-embed', 'https://static.medium.com/embed.js', array(), JETPACK__VERSION, true ); return sprintf( '<a class="m-%1$s" href="%2$s" target="_blank" data-width="%3$s" data-border="%4$s" data-collapsed="%5$s">%6$s</a>', esc_attr( $args['type'] ), esc_url( $args['url'] ), esc_attr( $args['width'] ), esc_attr( $args['border'] ), esc_attr( $args['collapsed'] ), esc_html__( 'View at Medium.com', 'jetpack' ) ); } /** * Shortcode support that allows passing in URL * * @param array $atts Shortcode attributes. */ function jetpack_embed_medium_shortcode( $atts ) { $atts = jetpack_embed_medium_args( $atts ); if ( ! empty( $atts['url'] ) ) { global $wp_embed; return $wp_embed->shortcode( $atts, $atts['url'] ); } else { if ( current_user_can( 'edit_posts' ) ) { return esc_html__( 'You did not provide a valid Medium URL.', 'jetpack' ); } else { return '<!-- Missing Medium URL -->'; } } } add_shortcode( 'medium', 'jetpack_embed_medium_shortcode' ); /** * Get embed type (profile, collection, or story) based on Medium URL. * * @param string $url Medium URL. */ function jetpack_embed_medium_get_embed_type( $url ) { $url_path = wp_parse_url( $url, PHP_URL_PATH ); if ( preg_match( '/^\/@[\.\w]+$/', $url_path ) ) { return 'profile'; } elseif ( preg_match( '/^\/(?:s)\/(.+)$/', $url_path ) ) { return 'collection'; } return 'story'; } /** * Process Medium shortcode attributes. * * @param array $atts Shortcode attributes. */ function jetpack_embed_medium_args( $atts ) { return shortcode_atts( array( 'url' => '', 'width' => '400', 'border' => true, 'collapsed' => false, ), $atts, 'medium' ); }
Save Changes
Rename File
Rename