PluginProbe ʕ •ᴥ•ʔ
Jetpack – WP Security, Backup, Speed, & Growth / 14.8.1
Jetpack – WP Security, Backup, Speed, & Growth v14.8.1
12.0.3 12.1.3 12.2.3 12.3.2 12.4.2 12.5.2 12.6.4 12.7.3 12.8.3 12.9.5 13.0.2 13.1.5 13.2.4 13.3.3 13.4.5 13.5.2 13.6.2 13.7.2 13.8.3 13.9.2 14.0.1 14.1.1 14.2.2 14.3.1 14.4.2 14.5.1 14.6.1 14.7.1 14.8.1 14.9.2 15.0.3 15.1.2 15.2.1 15.3.2 15.4.1 15.5.1 15.6.1 15.7.2 15.8.1 15.9.2 16.0.2 16.1.3 16.2-a.5 16.2-a.3 16.1.2 16.2-a.1 16.1.1 16.1 16.1-beta 16.1-beta.2 16.1-beta.3 16.1-a.5 16.1-a.3 16.0.1 16.1-a.1 16.0 16.0-beta 16.0-a.7 16.0-a.5 15.9.1 16.0-a.3 16.0-a.1 15.9 15.9-beta 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 / enhanced-open-graph.php
jetpack Last commit date
3rd-party 1 year ago _inc 1 day ago css 1 year ago extensions 1 year ago images 1 year ago jetpack_vendor 1 day ago json-endpoints 1 year ago modules 1 year ago sal 1 year ago src 1 year ago vendor 1 year ago views 2 years ago CHANGELOG.md 1 year ago LICENSE.txt 5 years ago SECURITY.md 2 years ago class-jetpack-connection-status.php 2 years ago class-jetpack-gallery-settings.php 3 years ago class-jetpack-newsletter-dashboard-widget.php 1 year ago class-jetpack-pre-connection-jitms.php 2 years ago class-jetpack-stats-dashboard-widget.php 1 year ago class-jetpack-xmlrpc-methods.php 1 year ago class.frame-nonce-preview.php 1 year ago class.jetpack-admin.php 1 year ago class.jetpack-autoupdate.php 2 years ago class.jetpack-cli.php 1 year ago class.jetpack-client-server.php 2 years ago class.jetpack-gutenberg.php 1 year ago class.jetpack-heartbeat.php 2 years ago class.jetpack-modules-list-table.php 2 years ago class.jetpack-network-sites-list-table.php 2 years ago class.jetpack-network.php 1 year ago class.jetpack-plan.php 3 years ago class.jetpack-post-images.php 1 year ago class.jetpack-twitter-cards.php 2 years ago class.jetpack-user-agent.php 2 years ago class.jetpack.php 1 year ago class.json-api-endpoints.php 1 year ago class.json-api.php 1 year ago class.photon.php 3 years ago composer.json 1 year ago enhanced-open-graph.php 1 year ago functions.compat.php 1 year ago functions.cookies.php 2 years ago functions.global.php 1 year ago functions.is-mobile.php 2 years ago functions.opengraph.php 1 year ago functions.photon.php 2 years ago jetpack.php 1 day ago json-api-config.php 3 years ago json-endpoints.php 2 years ago load-jetpack.php 1 year ago locales.php 4 years ago readme.txt 1 day ago unauth-file-upload.php 1 year ago uninstall.php 1 year ago wpml-config.xml 4 years ago
enhanced-open-graph.php
171 lines
1 <?php
2 /**
3 * Enhanced Open Graph for Jetpack.
4 *
5 * @package automattic/jetpack
6 */
7
8 if ( ! class_exists( 'Jetpack_Media_Summary' ) ) {
9 require_once JETPACK__PLUGIN_DIR . '_inc/lib/class.media-summary.php';
10 }
11
12 /**
13 * Better OG Image Tags for Image Post Formats
14 *
15 * @param array $tags Array of Open Graph tags.
16 */
17 function enhanced_og_image( $tags ) {
18 if ( ! is_singular() || post_password_required() ) {
19 return $tags;
20 }
21
22 global $post;
23
24 // Bail if we do not have info about the post.
25 if ( ! $post instanceof WP_Post ) {
26 return $tags;
27 }
28
29 // Always favor featured images.
30 if ( enhanced_og_has_featured_image( $post->ID ) ) {
31 return $tags;
32 }
33
34 $summary = Jetpack_Media_Summary::get( $post->ID );
35
36 if ( 'image' !== $summary['type'] ) {
37 return $tags;
38 }
39
40 $tags['og:image'] = $summary['image'];
41 $tags['og:image:secure_url'] = $summary['secure']['image'];
42
43 return $tags;
44 }
45 add_filter( 'jetpack_open_graph_tags', 'enhanced_og_image' );
46
47 /**
48 * Better OG Image Tags for Gallery Post Formats
49 *
50 * @param array $tags Array of Open Graph tags.
51 */
52 function enhanced_og_gallery( $tags ) {
53 if ( ! is_singular() || post_password_required() ) {
54 return $tags;
55 }
56
57 global $post;
58
59 // Bail if we do not have info about the post.
60 if ( ! $post instanceof WP_Post ) {
61 return $tags;
62 }
63
64 // Always favor featured images.
65 if ( enhanced_og_has_featured_image( $post->ID ) ) {
66 return $tags;
67 }
68
69 $summary = Jetpack_Media_Summary::get( $post->ID );
70
71 if ( 'gallery' !== $summary['type'] ) {
72 return $tags;
73 }
74
75 if ( ! isset( $summary['images'] ) || ! is_array( $summary['images'] ) || empty( $summary['images'] ) ) {
76 return $tags;
77 }
78
79 $images = array();
80 $secures = array();
81
82 foreach ( $summary['images'] as $i => $image ) {
83 $images[] = $image['url'];
84 $secures[] = $summary['secure']['images'][ $i ]['url'];
85 }
86
87 $tags['og:image'] = $images;
88 $tags['og:image:secure_url'] = $secures;
89
90 return $tags;
91 }
92 add_filter( 'jetpack_open_graph_tags', 'enhanced_og_gallery' );
93
94 /**
95 * Allows VideoPress, YouTube, and Vimeo videos to play inline on Facebook
96 *
97 * @param array $tags Array of Open Graph tags.
98 */
99 function enhanced_og_video( $tags ) {
100 if ( ! is_singular() || post_password_required() ) {
101 return $tags;
102 }
103
104 global $post;
105
106 // Bail if we do not have info about the post.
107 if ( ! $post instanceof WP_Post ) {
108 return $tags;
109 }
110
111 // Always favor featured images.
112 if ( enhanced_og_has_featured_image( $post->ID ) ) {
113 return $tags;
114 }
115
116 $summary = Jetpack_Media_Summary::get( $post->ID );
117
118 if ( 'video' !== $summary['type'] ) {
119 if ( $summary['count']['video'] > 0 && $summary['count']['image'] < 1 ) {
120 $tags['og:image'] = $summary['image'];
121 $tags['og:image:secure_url'] = $summary['secure']['image'];
122 }
123 return $tags;
124 }
125
126 $tags['og:image'] = $summary['image'];
127 $tags['og:image:secure_url'] = $summary['secure']['image'];
128
129 // This should be html by default for youtube/vimeo, since we're linking to HTML pages.
130 $tags['og:video:type'] = isset( $summary['video_type'] ) ? $summary['video_type'] : 'text/html';
131
132 $video_url = $summary['video'];
133 $secure_video_url = $summary['secure']['video'];
134
135 if ( preg_match( '/((youtube|vimeo)\.com|youtu.be)/', $video_url ) ) {
136 if ( strstr( $video_url, 'youtube' ) ) {
137 $id = jetpack_get_youtube_id( $video_url );
138 $video_url = 'http://www.youtube.com/embed/' . $id;
139 $secure_video_url = 'https://www.youtube.com/embed/' . $id;
140 } elseif ( strstr( $video_url, 'vimeo' ) ) {
141 preg_match( '|vimeo\.com/(\d+)/?$|i', $video_url, $match );
142 if ( isset( $match[1] ) ) {
143 $id = (int) $match[1];
144 $video_url = 'http://vimeo.com/moogaloop.swf?clip_id=' . $id;
145 $secure_video_url = 'https://vimeo.com/moogaloop.swf?clip_id=' . $id;
146 }
147 }
148 }
149
150 $tags['og:video'] = $video_url;
151 $tags['og:video:secure_url'] = $secure_video_url;
152
153 if ( empty( $post->post_title ) ) {
154 /* translators: %s is the name of the site */
155 $tags['og:title'] = sprintf( __( 'Video on %s', 'jetpack' ), get_option( 'blogname' ) );
156 }
157
158 return $tags;
159 }
160 add_filter( 'jetpack_open_graph_tags', 'enhanced_og_video' );
161
162 /**
163 * Check if a post has a suitable featured image.
164 *
165 * @param int $post_id The post ID to check.
166 * @return bool True if the post has a suitable featured image, false otherwise.
167 */
168 function enhanced_og_has_featured_image( $post_id ) {
169 return ! empty( Jetpack_PostImages::from_thumbnail( $post_id ) );
170 }
171