PluginProbe
Jetpack – WP Security, Backup, Speed, & Growth / 8.9.4
Jetpack – WP Security, Backup, Speed, & Growth v8.9.4
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 All 500 releases
jetpack / modules / publicize / enhanced-open-graph.php
enhanced-open-graph.php
130 lines 3.6 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 if ( ! class_exists( 'Jetpack_Media_Summary' ) ) {
3 if ( defined('IS_WPCOM') && IS_WPCOM ) {
4 include WP_CONTENT_DIR . '/lib/class.wpcom-media-summary.php';
5 } else {
6 jetpack_require_lib( 'class.media-summary' );
7 }
8 }
9
10 /**
11 * Better OG Image Tags for Image Post Formats
12 */
13 function enhanced_og_image( $tags ) {
14 if ( !is_singular() || post_password_required() )
15 return $tags;
16
17 global $post;
18
19 // Always favor featured images.
20 if ( enhanced_og_has_featured_image( $post->ID ) )
21 return $tags;
22
23 $summary = Jetpack_Media_Summary::get( $post->ID );
24
25 if ( 'image' != $summary['type'] )
26 return $tags;
27
28 $tags['og:image'] = $summary['image'];
29 $tags['og:image:secure_url'] = $summary['secure']['image'];
30
31 return $tags;
32 }
33 add_filter( 'jetpack_open_graph_tags', 'enhanced_og_image' );
34
35 /**
36 * Better OG Image Tags for Gallery Post Formats
37 */
38 function enhanced_og_gallery( $tags ) {
39 if ( !is_singular() || post_password_required() )
40 return $tags;
41
42 global $post;
43
44 // Always favor featured images.
45 if ( enhanced_og_has_featured_image( $post->ID ) )
46 return $tags;
47
48 $summary = Jetpack_Media_Summary::get( $post->ID );
49
50 if ( 'gallery' != $summary['type'] )
51 return $tags;
52
53 if( !isset( $summary['images'] ) || !is_array( $summary['images'] ) || empty( $summary['images'] ) )
54 return $tags;
55
56 $images = $secures = array();
57 foreach ( $summary['images'] as $i => $image ) {
58 $images[] = $image['url'];
59 $secures[] = $summary['secure']['images'][$i]['url'];
60 }
61
62 $tags['og:image'] = $images;
63 $tags['og:image:secure_url'] = $secures;
64
65 return $tags;
66 }
67 add_filter( 'jetpack_open_graph_tags', 'enhanced_og_gallery' );
68
69 /**
70 * Allows VideoPress, YouTube, and Vimeo videos to play inline on Facebook
71 */
72 function enhanced_og_video( $tags ) {
73 if ( !is_singular() || post_password_required() )
74 return $tags;
75
76 global $post;
77
78 // Always favor featured images.
79 if ( enhanced_og_has_featured_image( $post->ID ) )
80 return $tags;
81
82 $summary = Jetpack_Media_Summary::get( $post->ID );
83
84 if ( 'video' != $summary['type'] ) {
85 if ( $summary['count']['video'] > 0 && $summary['count']['image'] < 1 ) {
86 $tags['og:image'] = $summary['image'];
87 $tags['og:image:secure_url'] = $summary['secure']['image'];
88 }
89 return $tags;
90 }
91
92 $tags['og:image'] = $summary['image'];
93 $tags['og:image:secure_url'] = $summary['secure']['image'];
94
95 // This should be html by default for youtube/vimeo, since we're linking to HTML pages.
96 $tags['og:video:type'] = isset( $summary['video_type'] ) ? $summary['video_type'] : 'text/html';
97
98 $video_url = $summary['video'];
99 $secure_video_url = $summary['secure']['video'];
100
101 if ( preg_match( '/((youtube|vimeo)\.com|youtu.be)/', $video_url ) ) {
102 if ( strstr( $video_url, 'youtube' ) ) {
103 $id = jetpack_get_youtube_id( $video_url );
104 $video_url = 'http://www.youtube.com/embed/' . $id;
105 $secure_video_url = 'https://www.youtube.com/embed/' . $id;
106 } else if ( strstr( $video_url, 'vimeo' ) ) {
107 preg_match( '|vimeo\.com/(\d+)/?$|i', $video_url, $match );
108 $id = (int) $match[1];
109 $video_url = 'http://vimeo.com/moogaloop.swf?clip_id=' . $id;
110 $secure_video_url = 'https://vimeo.com/moogaloop.swf?clip_id=' . $id;
111 }
112 }
113
114 $tags['og:video'] = $video_url;
115 $tags['og:video:secure_url'] = $secure_video_url;
116
117 if ( empty( $post->post_title ) )
118 $tags['og:title'] = sprintf( __( 'Video on %s', 'jetpack' ), get_option( 'blogname' ) );
119
120 return $tags;
121 }
122 add_filter( 'jetpack_open_graph_tags', 'enhanced_og_video' );
123
124 function enhanced_og_has_featured_image( $post_id ) {
125 $featured = Jetpack_PostImages::from_thumbnail( $post_id, 200, 200 );
126 if ( !empty( $featured ) && count( $featured ) > 0 )
127 return true;
128 return false;
129 }
130