PluginProbe ʕ •ᴥ•ʔ
Jetpack – WP Security, Backup, Speed, & Growth / 15.9-a.7
Jetpack – WP Security, Backup, Speed, & Growth v15.9-a.7
15.9-a.7 15.9-a.5 15.9-a.3 15.9-a.1 15.8 15.8-beta 15.8-a.7 15.8-a.5 5.2.5 5.3.4 5.4.4 5.5.5 5.6.5 5.7.5 5.8.4 5.9.4 6.0.4 6.1 6.1.1 6.1.2 6.1.3 6.1.4 6.1.5 6.2 6.2.1 6.2.2 6.2.3 6.2.4 6.2.5 6.3 6.3.1 6.3.2 6.3.3 6.3.4 6.3.5 6.3.6 6.3.7 6.4 6.4.1 6.4.2 6.4.3 6.4.4 6.4.5 6.4.6 6.5 6.5.1 6.5.2 6.5.3 6.5.4 6.6 6.6.1 6.6.2 6.6.3 6.6.4 6.6.5 6.7 6.7.1 6.7.2 6.7.3 6.7.4 6.8 6.8.1 6.8.2 6.8.3 6.8.4 6.8.5 6.9 6.9.1 6.9.2 6.9.3 6.9.4 7.0 7.0.1 7.0.2 7.0.3 7.0.4 7.0.5 7.1 7.1.1 7.1.2 7.1.3 7.1.4 7.1.5 7.2 7.2.1 7.2.1.1 7.2.2 7.2.3 7.2.4 7.2.5 7.3 7.3.0.1 7.3.1 7.3.1.1 7.3.2 7.3.3 7.3.4 7.3.5 7.4 7.4.1 7.4.2 7.4.3 7.4.4 7.4.5 7.5 7.5.0.1 7.5.1 7.5.2 7.5.3 7.5.4 7.5.5 7.5.6 7.5.7 7.6 7.6.1 7.6.2 7.6.3 7.6.4 7.7 7.7.1 7.7.2 7.7.3 7.7.4 7.7.5 7.7.6 7.8 7.8.1 7.8.2 7.8.3 7.8.4 7.9 7.9.1 7.9.2 7.9.3 7.9.4 8.0 8.0.1 8.0.2 8.0.3 8.1 8.1.1 8.1.2 8.1.3 8.1.4 8.2 8.2.0.1 8.2.1 8.2.2 8.2.3 8.2.4 8.2.5 8.2.6 8.3 8.3.1 8.3.2 8.3.3 8.4 8.4.1 8.4.2 8.4.3 8.4.4 8.4.5 8.5 8.5.1 8.5.2 8.5.3 8.6 8.6.1 8.6.2 8.6.3 8.6.4 8.7 8.7.0.1 8.7.1 8.7.2 8.7.3 8.7.4 8.8 8.8.1 8.8.2 8.8.3 8.8.4 8.8.5 8.9 8.9.1 8.9.2 8.9.3 8.9.4 9.0 9.0.1 9.0.2 9.0.3 9.0.4 9.0.5 9.1 9.1.1 9.1.2 9.1.3 9.2 9.2.1 9.2.2 9.2.3 9.2.4 9.3 9.3.1 9.3.2 9.3.3 9.3.4 9.3.5 9.4 9.4.1 9.4.2 9.4.3 9.4.4 9.5 9.5.1 9.5.2 9.5.3 9.5.4 9.5.5 9.6 9.6.1 9.6.2 9.6.3 9.6.4 9.7 9.7.1 9.7.2 15.7-beta.2 9.7.3 15.7.1 9.8 15.8-a.1 9.8.1 15.8-a.3 9.8.2 2.0.9 9.8.3 2.1.7 9.9 2.2.10 9.9.1 2.3.10 9.9.2 2.4.7 9.9.3 2.5.5 2.6.6 2.7.5 2.8.5 2.9.6 3.0.6 3.1.5 3.2.5 3.3.6 3.4.6 3.5.6 3.6.4 3.7.5 3.8.5 3.9.10 4.0.7 4.1.4 4.2.5 4.3.5 4.4.5 4.5.3 4.6.3 4.7.4 4.8.5 4.9.3 5.0.3 5.1.4 trunk 10.0 10.0.1 10.0.2 10.1 10.1.1 10.1.2 10.2 10.2.1 10.2.2 10.2.3 10.3 10.3.1 10.3.2 10.4 10.4.1 10.4.2 10.5 10.5.1 10.5.2 10.5.3 10.6 10.6.1 10.6.2 10.7 10.7.1 10.7.2 10.8 10.8.1 10.8.2 10.9 10.9.1 10.9.2 10.9.3 11.0 11.0.1 11.0.2 11.1 11.1.1 11.1.2 11.1.3 11.1.4 11.2 11.2.1 11.2.2 11.3 11.3.1 11.3.2 11.3.3 11.3.4 11.4 11.4.1 11.4.2 11.5 11.5.1 11.5.2 11.5.3 11.6 11.6.1 11.6.2 11.7 11.7.1 11.7.2 11.7.3 11.8 11.8.3 11.8.4 11.8.5 11.8.6 11.9 11.9.1 11.9.2 11.9.3 12.0 12.0.1 12.0.2 12.1 12.1.1 12.1.2 12.2 12.2.1 12.2.2 12.3 12.3.1 12.4 12.4.1 12.5 12.5.1 12.6 12.6.1 12.6.2 12.6.3 12.7 12.7.1 12.7.2 12.8 12.8.1 12.8.2 12.9 12.9.1 12.9.2 12.9.3 12.9.4 13.0 13.0.1 13.1 13.1.1 13.1.2 13.1.3 13.1.4 13.2 13.2.1 13.2.2 13.2.3 13.3 13.3.1 13.3.2 13.4 13.4.1 13.4.2 13.4.3 13.4.4 13.5 13.5.1 13.6 13.6.1 13.7 13.7.1 13.8 13.8.1 13.8.2 13.9 13.9.1 14.0 14.1 14.2 14.2.1 14.3 14.4 14.4.1 14.5 14.6 14.7 14.8 14.9 14.9.1 15.0 15.0.1 15.0.2 15.1 15.1.1 15.2 15.3 15.3.1 15.4 15.5 15.6 15.7 15.7-a.1 15.7-a.3 15.7-a.5 15.7-a.7 15.7-beta
jetpack / _inc / lib / class.jetpack-iframe-embed.php
jetpack / _inc / lib Last commit date
admin-pages 3 days ago core-api 3 days ago debugger 3 days ago markdown 6 months ago class-jetpack-ai-helper.php 3 months ago class-jetpack-application-password-extras.php 2 months ago class-jetpack-blog-stats-helper.php 6 months ago class-jetpack-currencies.php 1 year ago class-jetpack-instagram-gallery-helper.php 3 days ago class-jetpack-mapbox-helper.php 3 years ago class-jetpack-newsletter-category-helper.php 6 months ago class-jetpack-podcast-feed-locator.php 3 days ago class-jetpack-podcast-helper.php 4 months ago class-jetpack-recommendations.php 1 week ago class-jetpack-spinner.php 1 month ago class-jetpack-top-posts-helper.php 3 days ago class.color.php 1 year ago class.core-rest-api-endpoints.php 3 days ago class.jetpack-automatic-install-skin.php 2 years ago class.jetpack-iframe-embed.php 2 years ago class.jetpack-password-checker.php 6 months ago class.jetpack-search-performance-logger.php 4 years ago class.media-extractor.php 2 weeks ago class.media-summary.php 2 weeks ago class.media.php 6 months ago components.php 6 months ago debugger.php 3 days ago icalendar-reader.php 1 week ago markdown.php 6 months ago plans.php 4 years ago plugins.php 4 years ago tonesque.php 6 months ago widgets.php 2 months ago
class.jetpack-iframe-embed.php
105 lines
1 <?php // phpcs:ignore WordPress.Files.FileName.InvalidClassFileName
2 /**
3 * Tweak a preview when rendered in an iframe.
4 * This is used when rendering iFrames in the Calypso app.
5 *
6 * This file is shared between WordPress.com and Jetpack.
7 * The canonical source is Jetpack and no WordPress.com-specific code should exist in this file.
8 *
9 * @package automattic/jetpack
10 */
11
12 /**
13 * Tweak a preview when rendered in an iframe.
14 */
15 class Jetpack_Iframe_Embed {
16 /**
17 * Initialize class.
18 */
19 public static function init() {
20 if ( ! self::is_embedding_in_iframe() ) {
21 return;
22 }
23
24 // Disable the admin bar.
25 if ( ! defined( 'IFRAME_REQUEST' ) ) {
26 define( 'IFRAME_REQUEST', true );
27 }
28
29 // Prevent canonical redirects.
30 remove_filter( 'template_redirect', 'redirect_canonical' );
31
32 add_action( 'wp_head', array( 'Jetpack_Iframe_Embed', 'noindex' ), 1 );
33 add_action( 'wp_head', array( 'Jetpack_Iframe_Embed', 'base_target_blank' ), 1 );
34
35 add_filter( 'shortcode_atts_video', array( 'Jetpack_Iframe_Embed', 'disable_autoplay' ) );
36 add_filter( 'shortcode_atts_audio', array( 'Jetpack_Iframe_Embed', 'disable_autoplay' ) );
37
38 $ver = sprintf( '%s-%s', gmdate( 'oW' ), defined( 'JETPACK__VERSION' ) ? JETPACK__VERSION : '' );
39 if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) {
40 wp_enqueue_script(
41 'jetpack-iframe-embed',
42 '/wp-content/mu-plugins/jetpack-iframe-embed/jetpack-iframe-embed.js',
43 array( 'jquery' ),
44 $ver,
45 false
46 );
47 } else {
48 wp_enqueue_script(
49 'jetpack-iframe-embed',
50 '//s0.wp.com/wp-content/mu-plugins/jetpack-iframe-embed/jetpack-iframe-embed.js',
51 array( 'jquery' ),
52 $ver,
53 false
54 );
55 }
56 wp_localize_script( 'jetpack-iframe-embed', '_previewSite', array( 'siteURL' => get_site_url() ) );
57 }
58
59 /**
60 * Check that we are in an iFrame.
61 *
62 * @return bool
63 */
64 private static function is_embedding_in_iframe() {
65 return (
66 // phpcs:disable WordPress.Security.NonceVerification.Recommended -- No nonce needed, we're only checking for a specific screen view.
67 isset( $_GET['iframe'] ) && 'true' === $_GET['iframe']
68 && (
69 isset( $_GET['preview'] ) && 'true' === $_GET['preview']
70 || isset( $_GET['theme_preview'] ) && 'true' === $_GET['theme_preview']
71 )
72 // phpcs:enable WordPress.Security.NonceVerification.Recommended
73 );
74 }
75
76 /**
77 * Disable `autoplay` shortcode attribute in context of an iframe
78 * Added via `shortcode_atts_video` & `shortcode_atts_audio` in `init`
79 *
80 * @param array $atts The output array of shortcode attributes.
81 *
82 * @return array The output array of shortcode attributes.
83 */
84 public static function disable_autoplay( $atts ) {
85 return array_merge( $atts, array( 'autoplay' => false ) );
86 }
87
88 /**
89 * We don't want search engines to index iframe previews
90 * Added via `wp_head` action in `init`
91 */
92 public static function noindex() {
93 echo '<meta name="robots" content="noindex,nofollow" />';
94 }
95
96 /**
97 * Make sure all links and forms open in a new window by default
98 * (unless overridden on client-side by JS)
99 * Added via `wp_head` action in `init`
100 */
101 public static function base_target_blank() {
102 echo '<base target="_blank" />';
103 }
104 }
105