<?php /** * Module Name: Shortcode Embeds * Module Description: Shortcodes are WordPress-specific markup that let you add media from popular sites. This feature is no longer necessary as the editor now handles media embeds rather gracefully. * Sort Order: 3 * First Introduced: 1.1 * Major Changes In: 1.2 * Requires Connection: No * Auto Activate: No * Module Tags: Photos and Videos, Social, Writing, Appearance * Feature: Writing * Additional Search Queries: shortcodes, shortcode, embeds, media, bandcamp, dailymotion, facebook, flickr, google calendars, google maps, polldaddy, recipe, recipes, scribd, slideshare, slideshow, slideshows, soundcloud, ted, twitter, vimeo, vine, youtube * * @package automattic/jetpack */ /** * Transforms the $atts array into a string that the old functions expected * * The old way was: * [shortcode a=1&b=2&c=3] or [shortcode=1] * This is parsed as array( a => '1&b=2&c=3' ) and array( 0 => '=1' ), which is useless * * @param array $params Array of old shortcode parameters. * @param bool $old_format_support true if [shortcode=foo] format is possible. * * @return string $params */ function shortcode_new_to_old_params( $params, $old_format_support = false ) { $str = ''; if ( $old_format_support && isset( $params[0] ) ) { $str = ltrim( $params[0], '=' ); } elseif ( is_array( $params ) ) { foreach ( array_keys( $params ) as $key ) { if ( ! is_numeric( $key ) ) { $str = $key . '=' . $params[ $key ]; } } } return str_replace( array( '&', '&' ), '&', $str ); } /** * Load all available Jetpack shortcode files. */ function jetpack_load_shortcodes() { $shortcode_includes = array(); foreach ( Jetpack::glob_php( __DIR__ . '/shortcodes' ) as $file ) { $filename = substr( basename( $file ), 0, -4 ); $shortcode_includes[ $filename ] = $file; } /** * This filter allows other plugins to override which shortcodes Jetpack loads. * * Fires as part of the `plugins_loaded` WP hook, so modifying code needs to be in a plugin, not in a theme's functions.php. * * @module shortcodes * * @since 2.2.1 * @since 4.2.0 Added filename without extension as array key. * * @param array $shortcode_includes An array of which shortcodes to include. */ $shortcode_includes = apply_filters( 'jetpack_shortcodes_to_include', $shortcode_includes ); foreach ( $shortcode_includes as $include ) { include_once $include; } } /** * Runs preg_replace so that replacements don't happen within open tags. * Parameters are the same as preg_replace, with an added optional search param for improved performance * * @param string $pattern Pattern to search for. * @param string $replacement String to replace. * @param string $content Post content. * @param string $search String to search for. * * @return string $content Replaced post content. */ function jetpack_preg_replace_outside_tags( $pattern, $replacement, $content, $search = null ) { if ( $search && ! str_contains( $content, $search ) ) { return $content; } $textarr = wp_html_split( $content ); unset( $content ); foreach ( $textarr as &$element ) { if ( '' === $element || '<' === $element[0] ) { continue; } $element = preg_replace( $pattern, $replacement, $element ); } return implode( $textarr ); } /** * Runs preg_replace_callback so that replacements don't happen within open tags. * Parameters are the same as preg_replace, with an added optional search param for improved performance. * * @param string $pattern Pattern to search for. * @param string $callback Callback returning the replacement string. * @param string $content Post content. * @param string $search String to search for. * * @return string $content Replaced post content. */ function jetpack_preg_replace_callback_outside_tags( $pattern, $callback, $content, $search = null ) { if ( $search && ! str_contains( $content, $search ) ) { return $content; } $textarr = wp_html_split( $content ); unset( $content ); foreach ( $textarr as &$element ) { if ( '' === $element || '<' === $element[0] ) { continue; } $element = preg_replace_callback( $pattern, $callback, $element ); } return implode( $textarr ); } if ( ! function_exists( 'jetpack_shortcode_get_wpvideo_id' ) ) { /** * Get VideoPress ID from wpvideo shortcode attributes. * * @param array $atts Shortcode attributes. * * @return string|int $id VideoPress ID. */ function jetpack_shortcode_get_wpvideo_id( $atts ) { if ( isset( $atts[0] ) ) { return $atts[0]; } else { return 0; } } } if ( ! function_exists( 'jetpack_shortcode_get_videopress_id' ) ) { /** * Get VideoPress ID from videopress shortcode attributes. * * @param array $atts Shortcode attributes. * @return int $id VideoPress ID. */ function jetpack_shortcode_get_videopress_id( $atts ) { if ( isset( $atts[0] ) ) { return $atts[0]; } else { return 0; } } } /** * Common element attributes parsing and sanitizing for src, width and height. * * @since 4.5.0 * * @param array $attrs With original values. * * @return array $attrs With sanitized values. */ function wpcom_shortcodereverse_parseattr( $attrs ) { $defaults = array( 'src' => false, 'width' => false, 'height' => false, ); $attrs = shortcode_atts( $defaults, $attrs ); $attrs['src'] = wp_strip_all_tags( $attrs['src'] ); // For sanity. $attrs['width'] = ( is_numeric( $attrs['width'] ) ) ? abs( (int) $attrs['width'] ) : $defaults['width']; $attrs['height'] = ( is_numeric( $attrs['height'] ) ) ? abs( (int) $attrs['height'] ) : $defaults['height']; return $attrs; } /** * When an embed service goes away, we can use this handler * to output a link for history's sake. * * @param array $matches Regex partial matches against the URL passed. * @param array $attr Attributes received in embed response. * @param string $url Requested URL to be embedded. * @return string Link to output. */ function jetpack_deprecated_embed_handler( $matches, $attr, $url ) { return sprintf( '<a href="%s">%s</a>', esc_url( $url ), esc_html( esc_url( $url ) ) ); } jetpack_load_shortcodes();
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
calypsoify | Folder | 0755 |
|
|
carousel | Folder | 0755 |
|
|
cloudflare-analytics | Folder | 0755 |
|
|
comment-likes | Folder | 0755 |
|
|
comments | Folder | 0755 |
|
|
contact-form | Folder | 0755 |
|
|
custom-css | Folder | 0755 |
|
|
custom-post-types | Folder | 0755 |
|
|
geo-location | Folder | 0755 |
|
|
google-analytics | Folder | 0755 |
|
|
google-fonts | Folder | 0755 |
|
|
gravatar | Folder | 0755 |
|
|
infinite-scroll | Folder | 0755 |
|
|
likes | Folder | 0755 |
|
|
markdown | Folder | 0755 |
|
|
masterbar | Folder | 0755 |
|
|
memberships | Folder | 0755 |
|
|
photon-cdn | Folder | 0755 |
|
|
plugin-search | Folder | 0755 |
|
|
post-by-email | Folder | 0755 |
|
|
related-posts | Folder | 0755 |
|
|
scan | Folder | 0755 |
|
|
seo-tools | Folder | 0755 |
|
|
sharedaddy | Folder | 0755 |
|
|
shortcodes | Folder | 0755 |
|
|
simple-payments | Folder | 0755 |
|
|
site-icon | Folder | 0755 |
|
|
sitemaps | Folder | 0755 |
|
|
sso | Folder | 0755 |
|
|
stats | Folder | 0755 |
|
|
subscriptions | Folder | 0755 |
|
|
theme-tools | Folder | 0755 |
|
|
tiled-gallery | Folder | 0755 |
|
|
verification-tools | Folder | 0755 |
|
|
videopress | Folder | 0755 |
|
|
widget-visibility | Folder | 0755 |
|
|
widgets | Folder | 0755 |
|
|
woocommerce-analytics | Folder | 0755 |
|
|
wordads | Folder | 0755 |
|
|
wpcom-block-editor | Folder | 0755 |
|
|
wpcom-tos | Folder | 0755 |
|
|
action-bar.php | File | 644 B | 0644 |
|
blaze.php | File | 419 B | 0644 |
|
carousel.php | File | 573 B | 0644 |
|
comment-likes.php | File | 8.03 KB | 0644 |
|
comments.php | File | 1.06 KB | 0644 |
|
contact-form.php | File | 7.47 KB | 0644 |
|
copy-post.php | File | 12.27 KB | 0644 |
|
custom-content-types.php | File | 1.53 KB | 0644 |
|
custom-css.php | File | 1.37 KB | 0644 |
|
enhanced-distribution.php | File | 2.4 KB | 0644 |
|
geo-location.php | File | 2.44 KB | 0644 |
|
google-analytics.php | File | 501 B | 0644 |
|
google-fonts.php | File | 533 B | 0644 |
|
gravatar-hovercards.php | File | 11.8 KB | 0644 |
|
infinite-scroll.php | File | 8.19 KB | 0644 |
|
json-api.php | File | 484 B | 0644 |
|
latex.php | File | 4.61 KB | 0644 |
|
lazy-images.php | File | 955 B | 0644 |
|
likes.php | File | 21.59 KB | 0644 |
|
markdown.php | File | 1007 B | 0644 |
|
masterbar.php | File | 1.56 KB | 0644 |
|
module-extras.php | File | 2.93 KB | 0644 |
|
module-headings.php | File | 46.17 KB | 0644 |
|
module-info.php | File | 27.93 KB | 0644 |
|
monitor.php | File | 3.51 KB | 0644 |
|
notes.php | File | 7.6 KB | 0644 |
|
photon-cdn.php | File | 12.17 KB | 0644 |
|
photon.php | File | 711 B | 0644 |
|
plugin-search.php | File | 20.06 KB | 0644 |
|
post-by-email.php | File | 596 B | 0644 |
|
post-list.php | File | 533 B | 0644 |
|
protect.php | File | 694 B | 0644 |
|
publicize.php | File | 4.24 KB | 0644 |
|
related-posts.php | File | 2.14 KB | 0644 |
|
search.php | File | 1.17 KB | 0644 |
|
seo-tools.php | File | 1.52 KB | 0644 |
|
sharedaddy.php | File | 1.6 KB | 0644 |
|
shortcodes.php | File | 6.06 KB | 0644 |
|
shortlinks.php | File | 4.37 KB | 0644 |
|
sitemaps.php | File | 1.28 KB | 0644 |
|
sso.php | File | 40.16 KB | 0644 |
|
stats.php | File | 50.88 KB | 0644 |
|
subscriptions.php | File | 35.02 KB | 0644 |
|
theme-tools.php | File | 2.52 KB | 0644 |
|
tiled-gallery.php | File | 1.05 KB | 0644 |
|
vaultpress.php | File | 1.77 KB | 0644 |
|
verification-tools.php | File | 830 B | 0644 |
|
videopress.php | File | 1007 B | 0644 |
|
waf.php | File | 297 B | 0644 |
|
widget-visibility.php | File | 475 B | 0644 |
|
widgets.php | File | 2.86 KB | 0644 |
|
woocommerce-analytics.php | File | 631 B | 0644 |
|
wordads.php | File | 586 B | 0644 |
|
wpgroho.js | File | 1.91 KB | 0644 |
|