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.php +114 -90 13.7.216.3-a.1 View file →
@@ -4,114 +4,138 @@
4 4 *
5 5 * @package automattic/jetpack
6 6 */
7 7
8 -/**
9 - * The function to prevent for Featured Images to be displayed in a theme.
10 - *
11 - * @param array $metadata Post metadata.
12 - * @param int $object_id Post ID.
13 - * @param string $meta_key Metadata key.
14 - */
15 -function jetpack_featured_images_remove_post_thumbnail( $metadata, $object_id, $meta_key ) {
16 - $opts = jetpack_featured_images_get_settings();
8 +if ( ! defined( 'ABSPATH' ) ) {
9 + exit( 0 );
10 +}
17 11
12 +if ( ! function_exists( 'jetpack_featured_images_remove_post_thumbnail' ) ) {
13 +
18 14 /**
19 - * Allow featured images to be displayed at all times for specific CPTs.
15 + * The function to prevent for Featured Images to be displayed in a theme.
20 16 *
21 - * @module theme-tools
22 - *
23 - * @since 9.1.0
24 - *
25 - * @param array $excluded_post_types Array of excluded post types.
17 + * @deprecated 13.9 Moved to Classic Theme Helper package.
18 + * @param array $metadata Post metadata.
19 + * @param int $object_id Post ID.
20 + * @param string $meta_key Metadata key.
26 21 */
27 - $excluded_post_types = apply_filters(
28 - 'jetpack_content_options_featured_image_exclude_cpt',
29 - array( 'jp_pay_product' )
30 - );
22 + function jetpack_featured_images_remove_post_thumbnail( $metadata, $object_id, $meta_key ) {
23 + _deprecated_function( __FUNCTION__, 'jetpack-13.9' );
24 + $opts = jetpack_featured_images_get_settings();
31 25
32 - // Automatically return metadata for specific post types, when we don't want to hide the Featured Image.
33 - if ( in_array( get_post_type( $object_id ), $excluded_post_types, true ) ) {
34 - return $metadata;
35 - }
26 + /**
27 + * Allow featured images to be displayed at all times for specific CPTs.
28 + *
29 + * @module theme-tools
30 + *
31 + * @since 9.1.0
32 + *
33 + * @param array $excluded_post_types Array of excluded post types.
34 + */
35 + $excluded_post_types = apply_filters(
36 + 'jetpack_content_options_featured_image_exclude_cpt',
37 + array( 'jp_pay_product' )
38 + );
36 39
37 - // Return false if the archive option or singular option is unticked.
38 - if (
39 - ( true === $opts['archive']
40 - && ( is_home() || is_archive() || is_search() )
41 - && ! jetpack_is_shop_page()
42 - && ! $opts['archive-option']
43 - && ( isset( $meta_key )
44 - && '_thumbnail_id' === $meta_key )
45 - && in_the_loop()
46 - )
47 - || ( true === $opts['post']
48 - && is_single()
49 - && ! jetpack_is_product()
50 - && ! $opts['post-option']
51 - && ( isset( $meta_key )
52 - && '_thumbnail_id' === $meta_key )
53 - && in_the_loop()
54 - )
55 - || ( true === $opts['page']
56 - && is_singular()
57 - && is_page()
58 - && ! $opts['page-option']
59 - && ( isset( $meta_key )
60 - && '_thumbnail_id' === $meta_key )
61 - && in_the_loop()
62 - )
63 - || ( true === $opts['portfolio']
64 - && post_type_exists( 'jetpack-portfolio' )
65 - && is_singular( 'jetpack-portfolio' )
66 - && ! $opts['portfolio-option']
67 - && ( isset( $meta_key )
68 - && '_thumbnail_id' === $meta_key )
69 - && in_the_loop()
70 - )
71 - ) {
40 + // Automatically return metadata for specific post types, when we don't want to hide the Featured Image.
41 + if ( in_array( get_post_type( $object_id ), $excluded_post_types, true ) ) {
42 + return $metadata;
43 + }
72 44
73 - // Do not override thumbnail settings within blocks (eg. Latest Posts block).
74 - $trace = debug_backtrace( DEBUG_BACKTRACE_IGNORE_ARGS ); // phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_debug_backtrace
75 - foreach ( $trace as $frame ) {
76 - if ( ! empty( $frame['class'] ) && class_exists( $frame['class'], false ) && is_a( $frame['class'], WP_Block::class, true ) ) {
77 - return $metadata;
45 + // Return false if the archive option or singular option is unticked.
46 + if (
47 + ( true === $opts['archive']
48 + && ( is_home() || is_archive() || is_search() )
49 + && ! jetpack_is_shop_page()
50 + && ! $opts['archive-option']
51 + && ( isset( $meta_key )
52 + && '_thumbnail_id' === $meta_key )
53 + && in_the_loop()
54 + )
55 + || ( true === $opts['post']
56 + && is_single()
57 + && ! jetpack_is_product()
58 + && ! $opts['post-option']
59 + && ( isset( $meta_key )
60 + && '_thumbnail_id' === $meta_key )
61 + && in_the_loop()
62 + )
63 + || ( true === $opts['page']
64 + && is_singular()
65 + && is_page()
66 + && ! $opts['page-option']
67 + && ( isset( $meta_key )
68 + && '_thumbnail_id' === $meta_key )
69 + && in_the_loop()
70 + )
71 + || ( true === $opts['portfolio']
72 + && post_type_exists( 'jetpack-portfolio' )
73 + && is_singular( 'jetpack-portfolio' )
74 + && ! $opts['portfolio-option']
75 + && ( isset( $meta_key )
76 + && '_thumbnail_id' === $meta_key )
77 + && in_the_loop()
78 + )
79 + ) {
80 +
81 + // Do not override thumbnail settings within blocks (eg. Latest Posts block).
82 + $trace = debug_backtrace( DEBUG_BACKTRACE_IGNORE_ARGS ); // phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_debug_backtrace
83 + foreach ( $trace as $frame ) {
84 + if ( ! empty( $frame['class'] ) && class_exists( $frame['class'], false ) && is_a( $frame['class'], WP_Block::class, true ) ) {
85 + return $metadata;
86 + }
78 87 }
88 +
89 + return false;
90 + } else {
91 + return $metadata;
79 92 }
93 + }
94 + add_filter( 'get_post_metadata', 'jetpack_featured_images_remove_post_thumbnail', true, 3 );
80 95
81 - return false;
82 - } else {
83 - return $metadata;
96 +}
97 +
98 +if ( ! function_exists( 'jetpack_is_product' ) ) {
99 +
100 + /**
101 + * Check if we are in a WooCommerce Product in order to exclude it from the is_single check.
102 + *
103 + * @deprecated 13.9 Moved to Classic Theme Helper package.
104 + */
105 + function jetpack_is_product() {
106 + _deprecated_function( __FUNCTION__, 'jetpack-13.9' );
107 + return ( function_exists( 'is_product' ) ) ? is_product() : false;
84 108 }
109 +
85 110 }
86 -add_filter( 'get_post_metadata', 'jetpack_featured_images_remove_post_thumbnail', true, 3 );
87 111
88 -/**
89 - * Check if we are in a WooCommerce Product in order to exclude it from the is_single check.
90 - */
91 -function jetpack_is_product() {
92 - return ( function_exists( 'is_product' ) ) ? is_product() : false;
93 -}
112 +if ( ! function_exists( 'jetpack_is_shop_page' ) ) {
94 113
95 -/**
96 - * Check if we are in a WooCommerce Shop in order to exclude it from the is_archive check.
97 - */
98 -function jetpack_is_shop_page() {
99 - // Check if WooCommerce is active first.
100 - if ( ! class_exists( 'WooCommerce' ) ) {
101 - return false;
102 - }
114 + /**
115 + * Check if we are in a WooCommerce Shop in order to exclude it from the is_archive check.
116 + *
117 + * @deprecated 13.9 Moved to Classic Theme Helper package.
118 + */
119 + function jetpack_is_shop_page() {
120 + _deprecated_function( __FUNCTION__, 'jetpack-13.9' );
121 + // Check if WooCommerce is active first.
122 + if ( ! class_exists( 'WooCommerce' ) ) {
123 + return false;
124 + }
103 125
104 - global $wp_query;
126 + global $wp_query;
105 127
106 - $front_page_id = get_option( 'page_on_front' );
107 - $current_page_id = $wp_query->get( 'page_id' );
108 - $is_static_front_page = 'page' === get_option( 'show_on_front' );
128 + $front_page_id = get_option( 'page_on_front' );
129 + $current_page_id = $wp_query->get( 'page_id' );
130 + $is_static_front_page = 'page' === get_option( 'show_on_front' );
109 131
110 - if ( $is_static_front_page && $front_page_id === $current_page_id ) {
111 - $is_shop_page = ( wc_get_page_id( 'shop' ) === $current_page_id ) ? true : false;
112 - } else {
113 - $is_shop_page = is_shop();
132 + if ( $is_static_front_page && $front_page_id === $current_page_id ) {
133 + $is_shop_page = wc_get_page_id( 'shop' ) === $current_page_id;
134 + } else {
135 + $is_shop_page = is_shop();
136 + }
137 +
138 + return $is_shop_page;
114 139 }
115 140
116 - return $is_shop_page;
117 141 }