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