PluginProbe
Jetpack – WP Security, Backup, Speed, & Growth / 16.3-a.1
Jetpack – WP Security, Backup, Speed, & Growth v16.3-a.1
16.3-a.3 16.3-a.1 16.2 16.2-beta 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 All 504 releases
← All changes | modules/theme-tools/content-options/featured-images-fallback.php +110 -84 13.7.216.3-a.1 View file →
@@ -4,39 +4,48 @@
4 4 *
5 5 * @package automattic/jetpack
6 6 */
7 7
8 -/**
9 - * Get one image from a specified post in the following order:
10 - * Featured Image then first image from the_content HTML
11 - * and filter the post_thumbnail_html
12 - *
13 - * @param string $html The HTML for the image markup.
14 - * @param int $post_id The post ID to check.
15 - * @param int $post_thumbnail_id The ID of the featured image.
16 - * @param string $size The image size to return, defaults to 'post-thumbnail'.
17 - * @param string|array $attr Optional. Query string or array of attributes.
18 - *
19 - * @return string $html Thumbnail image with markup.
20 - */
21 -function jetpack_featured_images_fallback_get_image( $html, $post_id, $post_thumbnail_id, $size, $attr ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
22 - $opts = jetpack_featured_images_get_settings();
8 +use Automattic\Jetpack\Post_Media\Images;
23 9
24 - if ( ! empty( $html ) || (bool) 1 !== (bool) $opts['fallback-option'] ) {
25 - return trim( $html );
26 - }
10 +if ( ! defined( 'ABSPATH' ) ) {
11 + exit( 0 );
12 +}
27 13
28 - if ( jetpack_featured_images_should_load() ) {
29 - if (
30 - ( true === $opts['archive'] && ( is_home() || is_archive() || is_search() ) && ! $opts['archive-option'] )
31 - || ( true === $opts['post'] && is_single() && ! $opts['post-option'] )
32 - || ! $opts['fallback-option']
33 - ) {
14 +if ( ! function_exists( 'jetpack_featured_images_fallback_get_image' ) ) {
15 +
16 + /**
17 + * Get one image from a specified post in the following order:
18 + * Featured Image then first image from the_content HTML
19 + * and filter the post_thumbnail_html
20 + *
21 + * @deprecated 13.9 Moved to Classic Theme Helper package.
22 + * @param string $html The HTML for the image markup.
23 + * @param int $post_id The post ID to check.
24 + * @param int $post_thumbnail_id The ID of the featured image.
25 + * @param string $size The image size to return, defaults to 'post-thumbnail'.
26 + * @param string|array $attr Optional. Query string or array of attributes.
27 + *
28 + * @return string $html Thumbnail image with markup.
29 + */
30 + function jetpack_featured_images_fallback_get_image( $html, $post_id, $post_thumbnail_id, $size, $attr ) {
31 + _deprecated_function( __FUNCTION__, 'jetpack-13.9' );
32 + $opts = jetpack_featured_images_get_settings();
33 +
34 + if ( ! empty( $html ) || (bool) 1 !== (bool) $opts['fallback-option'] ) {
34 35 return trim( $html );
35 36 }
36 - }
37 37
38 - if ( class_exists( 'Jetpack_PostImages' ) ) {
38 + if ( jetpack_featured_images_should_load() ) {
39 + if (
40 + ( true === $opts['archive'] && ( is_home() || is_archive() || is_search() ) && ! $opts['archive-option'] )
41 + || ( true === $opts['post'] && is_single() && ! $opts['post-option'] )
42 + || ! $opts['fallback-option']
43 + ) {
44 + return trim( $html );
45 + }
46 + }
47 +
39 48 global $_wp_additional_image_sizes;
40 49
41 50 $args = array(
42 51 'from_thumbnail' => false,
@@ -44,9 +53,9 @@
44 53 'from_gallery' => true,
45 54 'from_attachment' => false,
46 55 );
47 56
48 - $image = Jetpack_PostImages::get_image( $post_id, $args );
57 + $image = Images::get_image( $post_id, $args );
49 58
50 59 if ( ! empty( $image ) ) {
51 60 $image['width'] = '';
52 61 $image['height'] = '';
@@ -83,15 +92,15 @@
83 92 $width = $dims[0];
84 93 $height = $dims[1];
85 94 }
86 95
87 - $image_src = Jetpack_PostImages::fit_image_url( $image['src'], $width, $height );
88 - $image_srcset = Jetpack_PostImages::generate_cropped_srcset( $image, $width, $height, true );
96 + $image_src = Images::fit_image_url( $image['src'], $width, $height );
97 + $image_srcset = Images::generate_cropped_srcset( $image, $width, $height, true );
89 98 $image_sizes = 'min(' . $width . 'px, 100vw)';
90 99 } else {
91 100 // If we're not aware of the source dimensions, leave the size calculations to the CDN, and
92 101 // fall back to a simpler `<img>` tag without `width`/`height` or `srcset`.
93 - $image_src = Jetpack_PostImages::fit_image_url( $image['src'], $image['width'], $image['height'] );
102 + $image_src = Images::fit_image_url( $image['src'], $image['width'], $image['height'] );
94 103
95 104 // Use the theme's crop setting rather than forcing to true.
96 105 $image_src = add_query_arg( 'crop', $image['crop'], $image_src );
97 106
@@ -124,41 +133,45 @@
124 133 $html .= ' />';
125 134
126 135 return trim( $html );
127 136 }
137 +
138 + return trim( $html );
128 139 }
140 + add_filter( 'post_thumbnail_html', 'jetpack_featured_images_fallback_get_image', 10, 5 );
129 141
130 - return trim( $html );
131 142 }
132 -add_filter( 'post_thumbnail_html', 'jetpack_featured_images_fallback_get_image', 10, 5 );
133 143
134 -/**
135 - * Get URL of one image from a specified post in the following order:
136 - * Featured Image then first image from the_content HTML
137 - *
138 - * @param int $post_id The post ID to check.
139 - * @param int $post_thumbnail_id The ID of the featured image.
140 - * @param string $size The image size to return, defaults to 'post-thumbnail'.
141 - *
142 - * @return string|null $image_src The URL of the thumbnail image.
143 - */
144 -function jetpack_featured_images_fallback_get_image_src( $post_id, $post_thumbnail_id, $size ) {
145 - $image_src = wp_get_attachment_image_src( $post_thumbnail_id, $size );
146 - $image_src = ( ! empty( $image_src[0] ) ) ? $image_src[0] : null;
147 - $opts = jetpack_featured_images_get_settings();
144 +if ( ! function_exists( 'jetpack_featured_images_fallback_get_image_src' ) ) {
148 145
149 - if ( ! empty( $image_src ) || (bool) 1 !== (bool) $opts['fallback-option'] ) {
150 - return esc_url( $image_src );
151 - }
146 + /**
147 + * Get URL of one image from a specified post in the following order:
148 + * Featured Image then first image from the_content HTML
149 + *
150 + * @deprecated 13.9 Moved to Classic Theme Helper package.
151 + * @param int $post_id The post ID to check.
152 + * @param int $post_thumbnail_id The ID of the featured image.
153 + * @param string $size The image size to return, defaults to 'post-thumbnail'.
154 + *
155 + * @return string|null $image_src The URL of the thumbnail image.
156 + */
157 + function jetpack_featured_images_fallback_get_image_src( $post_id, $post_thumbnail_id, $size ) {
158 + _deprecated_function( __FUNCTION__, 'jetpack-13.9' );
159 + $image_src = wp_get_attachment_image_src( $post_thumbnail_id, $size );
160 + $image_src = ( ! empty( $image_src[0] ) ) ? $image_src[0] : null;
161 + $opts = jetpack_featured_images_get_settings();
152 162
153 - if ( jetpack_featured_images_should_load() ) {
154 - if ( ( true === $opts['archive'] && ( is_home() || is_archive() || is_search() ) && ! $opts['archive-option'] )
155 - || ( true === $opts['post'] && is_single() && ! $opts['post-option'] ) ) {
156 - return esc_url( $image_src );
163 + if ( ! empty( $image_src ) || (bool) 1 !== (bool) $opts['fallback-option'] ) {
164 + return esc_url( $image_src );
157 165 }
158 - }
159 166
160 - if ( class_exists( 'Jetpack_PostImages' ) ) {
167 + if ( jetpack_featured_images_should_load() ) {
168 + if ( ( true === $opts['archive'] && ( is_home() || is_archive() || is_search() ) && ! $opts['archive-option'] )
169 + || ( true === $opts['post'] && is_single() && ! $opts['post-option'] ) ) {
170 + return esc_url( $image_src );
171 + }
172 + }
173 +
161 174 global $_wp_additional_image_sizes;
162 175
163 176 $args = array(
164 177 'from_thumbnail' => false,
@@ -166,9 +179,9 @@
166 179 'from_gallery' => true,
167 180 'from_attachment' => false,
168 181 );
169 182
170 - $image = Jetpack_PostImages::get_image( $post_id, $args );
183 + $image = Images::get_image( $post_id, $args );
171 184
172 185 if ( ! empty( $image ) ) {
173 186 $image['width'] = '';
174 187 $image['height'] = '';
@@ -179,9 +192,9 @@
179 192 $image['height'] = $_wp_additional_image_sizes[ $size ]['height'];
180 193 $image['crop'] = $_wp_additional_image_sizes[ $size ]['crop'];
181 194 }
182 195
183 - $image_src = Jetpack_PostImages::fit_image_url( $image['src'], $image['width'], $image['height'] );
196 + $image_src = Images::fit_image_url( $image['src'], $image['width'], $image['height'] );
184 197
185 198 // Use the theme's crop setting rather than forcing to true.
186 199 $image_src = add_query_arg( 'crop', $image['crop'], $image_src );
187 200
@@ -186,41 +199,54 @@
186 199 $image_src = add_query_arg( 'crop', $image['crop'], $image_src );
187 200
188 201 return esc_url( $image_src );
189 202 }
203 +
204 + return esc_url( $image_src );
190 205 }
191 206
192 - return esc_url( $image_src );
193 207 }
194 208
195 -/**
196 - * Check if post has an image attached, including a fallback.
197 - *
198 - * @param int $post The post ID to check.
199 - *
200 - * @return bool
201 - */
202 -function jetpack_has_featured_image( $post = null ) {
203 - return (bool) get_the_post_thumbnail( $post );
209 +if ( ! function_exists( 'jetpack_has_featured_image' ) ) {
210 +
211 + /**
212 + * Check if post has an image attached, including a fallback.
213 + *
214 + * @deprecated 13.9 Moved to Classic Theme Helper package.
215 + * @param int $post The post ID to check.
216 + *
217 + * @return bool
218 + */
219 + function jetpack_has_featured_image( $post = null ) {
220 + _deprecated_function( __FUNCTION__, 'jetpack-13.9' );
221 + return (bool) get_the_post_thumbnail( $post );
222 + }
223 +
204 224 }
205 225
206 -/**
207 - * Adds custom class to the array of post classes.
208 - *
209 - * @param array $classes Classes for the post element.
210 - * @param array $class Optional. Comma separated list of additional classes.
211 - * @param array $post_id Unique The post ID to check.
212 - *
213 - * @return array $classes
214 - */
215 -function jetpack_featured_images_post_class( $classes, $class, $post_id ) {
216 - $post_password_required = post_password_required( $post_id );
217 - $opts = jetpack_featured_images_get_settings();
226 +if ( ! function_exists( 'jetpack_featured_images_post_class' ) ) {
218 227
219 - if ( jetpack_has_featured_image( $post_id ) && (bool) 1 === (bool) $opts['fallback-option'] && ! is_attachment() && ! $post_password_required && 'post' === get_post_type() ) {
220 - $classes[] = 'has-post-thumbnail';
221 - $classes[] = 'fallback-thumbnail';
228 + /**
229 + * Adds custom class to the array of post classes.
230 + *
231 + * @deprecated 13.9 Moved to Classic Theme Helper package.
232 + * @param array $classes Classes for the post element.
233 + * @param array $class Optional. Comma-separated list of additional classes.
234 + * @param array $post_id Unique The post ID to check.
235 + *
236 + * @return array $classes
237 + */
238 + function jetpack_featured_images_post_class( $classes, $class, $post_id ) {
239 + _deprecated_function( __FUNCTION__, 'jetpack-13.9' );
240 + $post_password_required = post_password_required( $post_id );
241 + $opts = jetpack_featured_images_get_settings();
242 +
243 + if ( jetpack_has_featured_image( $post_id ) && (bool) 1 === (bool) $opts['fallback-option'] && ! is_attachment() && ! $post_password_required && 'post' === get_post_type() ) {
244 + $classes[] = 'has-post-thumbnail';
245 + $classes[] = 'fallback-thumbnail';
246 + }
247 +
248 + return $classes;
222 249 }
250 + add_filter( 'post_class', 'jetpack_featured_images_post_class', 10, 3 );
223 251
224 - return $classes;
225 252 }
226 -add_filter( 'post_class', 'jetpack_featured_images_post_class', 10, 3 );