PluginProbe
Jetpack – WP Security, Backup, Speed, & Growth / 16.3-a.7
Jetpack – WP Security, Backup, Speed, & Growth v16.3-a.7
16.3-a.5 16.3-a.7 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 All 506 releases
← All changes | modules/theme-tools/content-options.php +141 -123 13.8.3 → 16.3-a.7 View file →
@@ -5,166 +5,184 @@
5 5 *
6 6 * @package automattic/jetpack
7 7 */
8 8
9 -/**
10 - * Content Options.
11 - *
12 - * This feature will only be activated for themes that declare their support.
13 - * This can be done by adding code similar to the following during the
14 - * 'after_setup_theme' action:
15 - *
16 - add_theme_support( 'jetpack-content-options', array(
17 - 'blog-display' => 'content', // the default setting of the theme: 'content', 'excerpt' or array( 'content', 'excerpt' ) for themes mixing both display.
18 - 'author-bio' => true, // display or not the author bio: true or false.
19 - 'author-bio-default' => false, // the default setting of the author bio, if it's being displayed or not: true or false (only required if false).
20 - 'avatar-default' => true, // display or not the default avatar for the author bio: true or false.
21 - 'masonry' => '.site-main', // a CSS selector matching the elements that triggers a masonry refresh if the theme is using a masonry layout.
22 - 'post-details' => array(
23 - 'stylesheet' => 'themeslug-style', // name of the theme's stylesheet.
24 - 'date' => '.posted-on', // a CSS selector matching the elements that display the post date.
25 - 'categories' => '.cat-links', // a CSS selector matching the elements that display the post categories.
26 - 'tags' => '.tags-links', // a CSS selector matching the elements that display the post tags.
27 - 'author' => '.byline', // a CSS selector matching the elements that display the post author.
28 - 'comment' => '.comments-link', // a CSS selector matching the elements that display the comment link.
29 - ),
30 - 'featured-images' => array(
31 - 'archive' => true, // enable or not the featured image check for archive pages: true or false.
32 - 'archive-default' => false, // the default setting of the featured image on archive pages, if it's being displayed or not: true or false (only required if false).
33 - 'post' => true, // enable or not the featured image check for single posts: true or false.
34 - 'post-default' => false, // the default setting of the featured image on single posts, if it's being displayed or not: true or false (only required if false).
35 - 'page' => true, // enable or not the featured image check for single pages: true or false.
36 - 'page-default' => false, // the default setting of the featured image on single pages, if it's being displayed or not: true or false (only required if false).
37 - 'portfolio' => true, // enable or not the featured image check for single projects: true or false.
38 - 'portfolio-default' => false, // the default setting of the featured image on single projects, if it's being displayed or not: true or false (only required if false).
39 - 'fallback' => true, // enable or not the featured image fallback: true or false.
40 - 'fallback-default' => true, // the default setting for featured image fallbacks: true or false (only required if false)
41 - ),
42 - ) );
43 - */
9 +if ( ! defined( 'ABSPATH' ) ) {
10 + exit( 0 );
11 +}
44 12
45 -if ( ! function_exists( 'jetpack_content_options_init' ) ) {
13 +if ( ! class_exists( '\Automattic\Jetpack\Classic_Theme_Helper\Main' ) ) {
46 14
47 15 /**
48 - * Activate the Content Options plugin.
16 + * Content Options.
49 17 *
50 - * @uses current_theme_supports()
18 + * This feature will only be activated for themes that declare their support.
19 + * This can be done by adding code similar to the following during the
20 + * 'after_setup_theme' action:
21 + *
22 + add_theme_support( 'jetpack-content-options', array(
23 + 'blog-display' => 'content', // the default setting of the theme: 'content', 'excerpt' or array( 'content', 'excerpt' ) for themes mixing both display.
24 + 'author-bio' => true, // display or not the author bio: true or false.
25 + 'author-bio-default' => false, // the default setting of the author bio, if it's being displayed or not: true or false (only required if false).
26 + 'avatar-default' => true, // display or not the default avatar for the author bio: true or false.
27 + 'masonry' => '.site-main', // a CSS selector matching the elements that triggers a masonry refresh if the theme is using a masonry layout.
28 + 'post-details' => array(
29 + 'stylesheet' => 'themeslug-style', // name of the theme's stylesheet.
30 + 'date' => '.posted-on', // a CSS selector matching the elements that display the post date.
31 + 'categories' => '.cat-links', // a CSS selector matching the elements that display the post categories.
32 + 'tags' => '.tags-links', // a CSS selector matching the elements that display the post tags.
33 + 'author' => '.byline', // a CSS selector matching the elements that display the post author.
34 + 'comment' => '.comments-link', // a CSS selector matching the elements that display the comment link.
35 + ),
36 + 'featured-images' => array(
37 + 'archive' => true, // enable or not the featured image check for archive pages: true or false.
38 + 'archive-default' => false, // the default setting of the featured image on archive pages, if it's being displayed or not: true or false (only required if false).
39 + 'post' => true, // enable or not the featured image check for single posts: true or false.
40 + 'post-default' => false, // the default setting of the featured image on single posts, if it's being displayed or not: true or false (only required if false).
41 + 'page' => true, // enable or not the featured image check for single pages: true or false.
42 + 'page-default' => false, // the default setting of the featured image on single pages, if it's being displayed or not: true or false (only required if false).
43 + 'portfolio' => true, // enable or not the featured image check for single projects: true or false.
44 + 'portfolio-default' => false, // the default setting of the featured image on single projects, if it's being displayed or not: true or false (only required if false).
45 + 'fallback' => true, // enable or not the featured image fallback: true or false.
46 + 'fallback-default' => true, // the default setting for featured image fallbacks: true or false (only required if false)
47 + ),
48 + ) );
51 49 */
52 - function jetpack_content_options_init() {
53 - // If the theme doesn't support 'jetpack-content-options', don't continue.
54 - if ( ! current_theme_supports( 'jetpack-content-options' ) ) {
55 - return;
56 - }
57 50
58 - // Load the Customizer options.
59 - require __DIR__ . '/content-options/customizer.php';
51 + if ( ! function_exists( 'jetpack_content_options_init' ) ) {
60 52
61 - // Load Blog Display function.
62 - require __DIR__ . '/content-options/blog-display.php';
53 + /**
54 + * Activate the Content Options plugin.
55 + *
56 + * @deprecated 13.9 Moved to Classic Theme Helper package.
57 + * @uses current_theme_supports()
58 + */
59 + function jetpack_content_options_init() {
60 + _deprecated_function( __FUNCTION__, 'jetpack-13.9' );
61 + // If the theme doesn't support 'jetpack-content-options', don't continue.
62 + if ( ! current_theme_supports( 'jetpack-content-options' ) ) {
63 + return;
64 + }
63 65
64 - // Load Author Bio function.
65 - require __DIR__ . '/content-options/author-bio.php';
66 + // Load the Customizer options.
67 + require __DIR__ . '/content-options/customizer.php';
66 68
67 - // Load Post Details function.
68 - require __DIR__ . '/content-options/post-details.php';
69 + // Load Blog Display function.
70 + require __DIR__ . '/content-options/blog-display.php';
69 71
70 - // Load Featured Images function.
71 - if ( jetpack_featured_images_should_load() ) {
72 - require __DIR__ . '/content-options/featured-images.php';
72 + // Load Author Bio function.
73 + require __DIR__ . '/content-options/author-bio.php';
74 +
75 + // Load Post Details function.
76 + require __DIR__ . '/content-options/post-details.php';
77 +
78 + // Load Featured Images function.
79 + if ( jetpack_featured_images_should_load() ) {
80 + require __DIR__ . '/content-options/featured-images.php';
81 + }
82 +
83 + // Load Featured Images Fallback function.
84 + if ( jetpack_featured_images_fallback_should_load() ) {
85 + require __DIR__ . '/content-options/featured-images-fallback.php';
86 + }
73 87 }
88 + add_action( 'init', 'jetpack_content_options_init' );
74 89
75 - // Load Featured Images Fallback function.
76 - if ( jetpack_featured_images_fallback_should_load() ) {
77 - require __DIR__ . '/content-options/featured-images-fallback.php';
78 - }
79 90 }
80 - add_action( 'init', 'jetpack_content_options_init' );
81 91
82 -}
92 + if ( ! function_exists( 'jetpack_featured_images_get_settings' ) ) {
83 93
84 -if ( ! function_exists( 'jetpack_featured_images_get_settings' ) ) {
94 + /**
95 + * Get featured images settings using the jetpack-content-options theme support.
96 + *
97 + * @deprecated 13.9 Moved to Classic Theme Helper package.
98 + */
99 + function jetpack_featured_images_get_settings() {
100 + _deprecated_function( __FUNCTION__, 'jetpack-13.9' );
101 + $options = get_theme_support( 'jetpack-content-options' );
85 102
86 - /**
87 - * Get featured images settings using the jetpack-content-options theme support.
88 - */
89 - function jetpack_featured_images_get_settings() {
90 - $options = get_theme_support( 'jetpack-content-options' );
103 + $featured_images = ( ! empty( $options[0]['featured-images'] ) ) ? $options[0]['featured-images'] : null;
91 104
92 - $featured_images = ( ! empty( $options[0]['featured-images'] ) ) ? $options[0]['featured-images'] : null;
105 + $settings = array(
106 + 'archive' => ( ! empty( $featured_images['archive'] ) ) ? $featured_images['archive'] : null,
107 + 'post' => ( ! empty( $featured_images['post'] ) ) ? $featured_images['post'] : null,
108 + 'page' => ( ! empty( $featured_images['page'] ) ) ? $featured_images['page'] : null,
109 + 'portfolio' => ( ! empty( $featured_images['portfolio'] ) ) ? $featured_images['portfolio'] : null,
110 + 'archive-default' => ( isset( $featured_images['archive-default'] ) && false === $featured_images['archive-default'] ) ? '' : 1,
111 + 'post-default' => ( isset( $featured_images['post-default'] ) && false === $featured_images['post-default'] ) ? '' : 1,
112 + 'page-default' => ( isset( $featured_images['page-default'] ) && false === $featured_images['page-default'] ) ? '' : 1,
113 + 'portfolio-default' => ( isset( $featured_images['portfolio-default'] ) && false === $featured_images['portfolio-default'] ) ? '' : 1,
114 + 'fallback' => ( ! empty( $featured_images['fallback'] ) ) ? $featured_images['fallback'] : null,
115 + 'fallback-default' => ( isset( $featured_images['fallback-default'] ) && false === $featured_images['fallback-default'] ) ? '' : 1,
116 + );
93 117
94 - $settings = array(
95 - 'archive' => ( ! empty( $featured_images['archive'] ) ) ? $featured_images['archive'] : null,
96 - 'post' => ( ! empty( $featured_images['post'] ) ) ? $featured_images['post'] : null,
97 - 'page' => ( ! empty( $featured_images['page'] ) ) ? $featured_images['page'] : null,
98 - 'portfolio' => ( ! empty( $featured_images['portfolio'] ) ) ? $featured_images['portfolio'] : null,
99 - 'archive-default' => ( isset( $featured_images['archive-default'] ) && false === $featured_images['archive-default'] ) ? '' : 1,
100 - 'post-default' => ( isset( $featured_images['post-default'] ) && false === $featured_images['post-default'] ) ? '' : 1,
101 - 'page-default' => ( isset( $featured_images['page-default'] ) && false === $featured_images['page-default'] ) ? '' : 1,
102 - 'portfolio-default' => ( isset( $featured_images['portfolio-default'] ) && false === $featured_images['portfolio-default'] ) ? '' : 1,
103 - 'fallback' => ( ! empty( $featured_images['fallback'] ) ) ? $featured_images['fallback'] : null,
104 - 'fallback-default' => ( isset( $featured_images['fallback-default'] ) && false === $featured_images['fallback-default'] ) ? '' : 1,
105 - );
118 + $settings = array_merge(
119 + $settings,
120 + array(
121 + 'archive-option' => get_option( 'jetpack_content_featured_images_archive', $settings['archive-default'] ),
122 + 'post-option' => get_option( 'jetpack_content_featured_images_post', $settings['post-default'] ),
123 + 'page-option' => get_option( 'jetpack_content_featured_images_page', $settings['page-default'] ),
124 + 'portfolio-option' => get_option( 'jetpack_content_featured_images_portfolio', $settings['portfolio-default'] ),
125 + 'fallback-option' => get_option( 'jetpack_content_featured_images_fallback', $settings['fallback-default'] ),
126 + )
127 + );
106 128
107 - $settings = array_merge(
108 - $settings,
109 - array(
110 - 'archive-option' => get_option( 'jetpack_content_featured_images_archive', $settings['archive-default'] ),
111 - 'post-option' => get_option( 'jetpack_content_featured_images_post', $settings['post-default'] ),
112 - 'page-option' => get_option( 'jetpack_content_featured_images_page', $settings['page-default'] ),
113 - 'portfolio-option' => get_option( 'jetpack_content_featured_images_portfolio', $settings['portfolio-default'] ),
114 - 'fallback-option' => get_option( 'jetpack_content_featured_images_fallback', $settings['fallback-default'] ),
115 - )
116 - );
129 + return $settings;
130 + }
117 131
118 - return $settings;
119 132 }
120 133
121 -}
134 + if ( ! function_exists( 'jetpack_featured_images_should_load' ) ) {
122 135
123 -if ( ! function_exists( 'jetpack_featured_images_should_load' ) ) {
136 + /**
137 + * Determine if the Jetpack Featured Images should be load.
138 + *
139 + * @deprecated 13.9 Moved to Classic Theme Helper package.
140 + */
141 + function jetpack_featured_images_should_load() {
142 + _deprecated_function( __FUNCTION__, 'jetpack-13.9' );
143 + // If the theme doesn't support post thumbnails, don't continue.
144 + if ( ! current_theme_supports( 'post-thumbnails' ) ) {
145 + return false;
146 + }
124 147
125 - /**
126 - * Determine if the Jetpack Featured Images should be load.
127 - */
128 - function jetpack_featured_images_should_load() {
129 - // If the theme doesn't support post thumbnails, don't continue.
130 - if ( ! current_theme_supports( 'post-thumbnails' ) ) {
131 - return false;
132 - }
148 + $opts = jetpack_featured_images_get_settings();
133 149
134 - $opts = jetpack_featured_images_get_settings();
135 -
136 - // If the theme doesn't support archive, post and page or if all the options are ticked and we aren't in the customizer, don't continue.
137 - if (
150 + // If the theme doesn't support archive, post and page or if all the options are ticked and we aren't in the customizer, don't continue.
151 + if (
138 152 ( true !== $opts['archive'] && true !== $opts['post'] && true !== $opts['page'] )
139 153 || ( 1 === $opts['archive-option'] && 1 === $opts['post-option'] && 1 === $opts['page-option'] && ! is_customize_preview() )
140 - ) {
141 - return false;
154 + ) {
155 + return false;
156 + }
157 +
158 + return true;
142 159 }
143 160
144 - return true;
145 161 }
146 162
147 -}
163 + if ( ! function_exists( 'jetpack_featured_images_fallback_should_load' ) ) {
148 164
149 -if ( ! function_exists( 'jetpack_featured_images_fallback_should_load' ) ) {
165 + /**
166 + * Determine if the Jetpack Featured Images fallback should load.
167 + *
168 + * @deprecated 13.9 Moved to Classic Theme Helper package.
169 + */
170 + function jetpack_featured_images_fallback_should_load() {
171 + _deprecated_function( __FUNCTION__, 'jetpack-13.9' );
172 + // If the theme doesn't support post thumbnails, don't continue.
173 + if ( ! current_theme_supports( 'post-thumbnails' ) ) {
174 + return false;
175 + }
150 176
151 - /**
152 - * Determine if the Jetpack Featured Images fallback should load.
153 - */
154 - function jetpack_featured_images_fallback_should_load() {
155 - // If the theme doesn't support post thumbnails, don't continue.
156 - if ( ! current_theme_supports( 'post-thumbnails' ) ) {
157 - return false;
158 - }
177 + $opts = jetpack_featured_images_get_settings();
159 178
160 - $opts = jetpack_featured_images_get_settings();
179 + // If the theme doesn't support fallback, don't continue.
180 + if ( true !== $opts['fallback'] ) {
181 + return false;
182 + }
161 183
162 - // If the theme doesn't support fallback, don't continue.
163 - if ( true !== $opts['fallback'] ) {
164 - return false;
184 + return true;
165 185 }
166 186
167 - return true;
168 187 }
169 -
170 188 }