PluginProbe ʕ •ᴥ•ʔ
Jetpack – WP Security, Backup, Speed, & Growth / 13.2.4
Jetpack – WP Security, Backup, Speed, & Growth v13.2.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 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 / modules / theme-tools / content-options / customizer.php
jetpack / modules / theme-tools / content-options Last commit date
author-bio.php 2 years ago blog-display.php 4 years ago customizer.js 6 years ago customizer.php 3 years ago featured-images-fallback.php 2 years ago featured-images.php 2 years ago post-details.php 4 years ago
customizer.php
499 lines
1 <?php // phpcs:ignore WordPress.Files.FileName.InvalidClassFileName
2 /**
3 * Theme Tools: functions for Customizer enhancements.
4 *
5 * @package automattic/jetpack
6 */
7
8 /**
9 * Add Content section to the Theme Customizer.
10 *
11 * @param WP_Customize_Manager $wp_customize Theme Customizer object.
12 */
13 function jetpack_content_options_customize_register( $wp_customize ) {
14 $options = get_theme_support( 'jetpack-content-options' );
15 $blog_display = ( ! empty( $options[0]['blog-display'] ) ) ? $options[0]['blog-display'] : null;
16 $blog_display = preg_grep( '/^(content|excerpt)$/', (array) $blog_display );
17 sort( $blog_display );
18 $blog_display = implode( ', ', $blog_display );
19 $blog_display = ( 'content, excerpt' === $blog_display ) ? 'mixed' : $blog_display;
20 $author_bio = ( ! empty( $options[0]['author-bio'] ) ) ? $options[0]['author-bio'] : null;
21 $author_bio_default = ( isset( $options[0]['author-bio-default'] ) && false === $options[0]['author-bio-default'] ) ? '' : 1;
22 $post_details = ( ! empty( $options[0]['post-details'] ) ) ? $options[0]['post-details'] : null;
23 $date = ( ! empty( $post_details['date'] ) ) ? $post_details['date'] : null;
24 $categories = ( ! empty( $post_details['categories'] ) ) ? $post_details['categories'] : null;
25 $tags = ( ! empty( $post_details['tags'] ) ) ? $post_details['tags'] : null;
26 $author = ( ! empty( $post_details['author'] ) ) ? $post_details['author'] : null;
27 $comment = ( ! empty( $post_details['comment'] ) ) ? $post_details['comment'] : null;
28 $featured_images = ( ! empty( $options[0]['featured-images'] ) ) ? $options[0]['featured-images'] : null;
29 $fi_archive = ( ! empty( $featured_images['archive'] ) ) ? $featured_images['archive'] : null;
30 $fi_post = ( ! empty( $featured_images['post'] ) ) ? $featured_images['post'] : null;
31 $fi_page = ( ! empty( $featured_images['page'] ) ) ? $featured_images['page'] : null;
32 $fi_portfolio = ( ! empty( $featured_images['portfolio'] ) ) ? $featured_images['portfolio'] : null;
33 $fi_fallback = ( ! empty( $featured_images['fallback'] ) ) ? $featured_images['fallback'] : null;
34 $fi_archive_default = ( isset( $featured_images['archive-default'] ) && false === $featured_images['archive-default'] ) ? '' : 1;
35 $fi_post_default = ( isset( $featured_images['post-default'] ) && false === $featured_images['post-default'] ) ? '' : 1;
36 $fi_page_default = ( isset( $featured_images['page-default'] ) && false === $featured_images['page-default'] ) ? '' : 1;
37 $fi_portfolio_default = ( isset( $featured_images['portfolio-default'] ) && false === $featured_images['portfolio-default'] ) ? '' : 1;
38 $fi_fallback_default = ( isset( $featured_images['fallback-default'] ) && false === $featured_images['fallback-default'] ) ? '' : 1;
39
40 // If the theme doesn't support 'jetpack-content-options[ 'blog-display' ]', 'jetpack-content-options[ 'author-bio' ]', 'jetpack-content-options[ 'post-details' ]' and 'jetpack-content-options[ 'featured-images' ]', don't continue.
41 if ( ( ! in_array( $blog_display, array( 'content', 'excerpt', 'mixed' ), true ) )
42 && ( true !== $author_bio )
43 && ( ( empty( $post_details['stylesheet'] ) )
44 && ( empty( $date )
45 || empty( $categories )
46 || empty( $tags )
47 || empty( $author )
48 || empty( $comment ) ) )
49 && ( true !== $fi_archive && true !== $fi_post && true !== $fi_page && true !== $fi_portfolio && true !== $fi_fallback ) ) {
50 return;
51 }
52
53 /**
54 * New Customizer control type: Title.
55 */
56 class Jetpack_Customize_Control_Title extends WP_Customize_Control {
57 /**
58 * Customizer control type.
59 *
60 * @var string
61 */
62 public $type = 'title';
63
64 /**
65 * Render the control's content.
66 */
67 public function render_content() { // phpcs:ignore MediaWiki.Usage.NestedFunctions.NestedFunction
68 ?>
69 <span class="customize-control-title"><?php echo wp_kses_post( $this->label ); ?></span>
70 <?php
71 }
72 }
73
74 // Add Content section.
75 $wp_customize->add_section(
76 'jetpack_content_options',
77 array(
78 'title' => esc_html__( 'Content Options', 'jetpack' ),
79 'theme_supports' => 'jetpack-content-options',
80 'priority' => 100,
81 )
82 );
83
84 // Add Blog Display option.
85 if ( in_array( $blog_display, array( 'content', 'excerpt', 'mixed' ), true ) ) {
86 if ( 'mixed' === $blog_display ) {
87 $blog_display_choices = array(
88 'content' => esc_html__( 'Full post', 'jetpack' ),
89 'excerpt' => esc_html__( 'Post excerpt', 'jetpack' ),
90 'mixed' => esc_html__( 'Default', 'jetpack' ),
91 );
92
93 $blog_display_description = esc_html__( 'Choose between a full post or an excerpt for the blog and archive pages, or opt for the theme\'s default combination of excerpt and full post.', 'jetpack' );
94 } else {
95 $blog_display_choices = array(
96 'content' => esc_html__( 'Full post', 'jetpack' ),
97 'excerpt' => esc_html__( 'Post excerpt', 'jetpack' ),
98 );
99
100 $blog_display_description = esc_html__( 'Choose between a full post or an excerpt for the blog and archive pages.', 'jetpack' );
101
102 if ( 'mixed' === get_option( 'jetpack_content_blog_display' ) ) {
103 update_option( 'jetpack_content_blog_display', $blog_display );
104 }
105 }
106
107 $wp_customize->add_setting(
108 'jetpack_content_blog_display',
109 array(
110 'default' => $blog_display,
111 'type' => 'option',
112 'transport' => 'postMessage',
113 'sanitize_callback' => 'jetpack_content_options_sanitize_blog_display',
114 )
115 );
116
117 $wp_customize->add_control(
118 'jetpack_content_blog_display',
119 array(
120 'section' => 'jetpack_content_options',
121 'label' => esc_html__( 'Blog Display', 'jetpack' ),
122 'description' => $blog_display_description,
123 'type' => 'radio',
124 'choices' => $blog_display_choices,
125 )
126 );
127 }
128
129 // Add Author Bio option.
130 if ( true === $author_bio ) {
131 $wp_customize->add_setting( 'jetpack_content_author_bio_title' );
132
133 $wp_customize->add_control(
134 new Jetpack_Customize_Control_Title(
135 $wp_customize,
136 'jetpack_content_author_bio_title',
137 array(
138 'section' => 'jetpack_content_options',
139 'label' => esc_html__( 'Author Bio', 'jetpack' ),
140 'type' => 'title',
141 )
142 )
143 );
144
145 $wp_customize->add_setting(
146 'jetpack_content_author_bio',
147 array(
148 'default' => $author_bio_default,
149 'type' => 'option',
150 'sanitize_callback' => 'jetpack_content_options_sanitize_checkbox',
151 )
152 );
153
154 $wp_customize->add_control(
155 'jetpack_content_author_bio',
156 array(
157 'section' => 'jetpack_content_options',
158 'label' => esc_html__( 'Display on single posts', 'jetpack' ),
159 'type' => 'checkbox',
160 )
161 );
162 }
163
164 // Add Post Details options.
165 if ( ( ! empty( $post_details ) )
166 && ( ! empty( $post_details['stylesheet'] ) )
167 && ( ! empty( $date )
168 || ! empty( $categories )
169 || ! empty( $tags )
170 || ! empty( $author )
171 || ! empty( $comment ) ) ) {
172 $wp_customize->add_setting( 'jetpack_content_post_details_title' );
173
174 $wp_customize->add_control(
175 new Jetpack_Customize_Control_Title(
176 $wp_customize,
177 'jetpack_content_post_details_title',
178 array(
179 'section' => 'jetpack_content_options',
180 'label' => esc_html__( 'Post Details', 'jetpack' ),
181 'type' => 'title',
182 )
183 )
184 );
185
186 // Post Details: Date.
187 if ( ! empty( $date ) ) {
188 $wp_customize->add_setting(
189 'jetpack_content_post_details_date',
190 array(
191 'default' => 1,
192 'type' => 'option',
193 'transport' => 'postMessage',
194 'sanitize_callback' => 'jetpack_content_options_sanitize_checkbox',
195 )
196 );
197
198 $wp_customize->add_control(
199 'jetpack_content_post_details_date',
200 array(
201 'section' => 'jetpack_content_options',
202 'label' => esc_html__( 'Display date', 'jetpack' ),
203 'type' => 'checkbox',
204 )
205 );
206 }
207
208 // Post Details: Categories.
209 if ( ! empty( $categories ) ) {
210 $wp_customize->add_setting(
211 'jetpack_content_post_details_categories',
212 array(
213 'default' => 1,
214 'type' => 'option',
215 'transport' => 'postMessage',
216 'sanitize_callback' => 'jetpack_content_options_sanitize_checkbox',
217 )
218 );
219
220 $wp_customize->add_control(
221 'jetpack_content_post_details_categories',
222 array(
223 'section' => 'jetpack_content_options',
224 'label' => esc_html__( 'Display categories', 'jetpack' ),
225 'type' => 'checkbox',
226 )
227 );
228 }
229
230 // Post Details: Tags.
231 if ( ! empty( $tags ) ) {
232 $wp_customize->add_setting(
233 'jetpack_content_post_details_tags',
234 array(
235 'default' => 1,
236 'type' => 'option',
237 'transport' => 'postMessage',
238 'sanitize_callback' => 'jetpack_content_options_sanitize_checkbox',
239 )
240 );
241
242 $wp_customize->add_control(
243 'jetpack_content_post_details_tags',
244 array(
245 'section' => 'jetpack_content_options',
246 'label' => esc_html__( 'Display tags', 'jetpack' ),
247 'type' => 'checkbox',
248 )
249 );
250 }
251
252 // Post Details: Author.
253 if ( ! empty( $author ) ) {
254 $wp_customize->add_setting(
255 'jetpack_content_post_details_author',
256 array(
257 'default' => 1,
258 'type' => 'option',
259 'transport' => 'postMessage',
260 'sanitize_callback' => 'jetpack_content_options_sanitize_checkbox',
261 )
262 );
263
264 $wp_customize->add_control(
265 'jetpack_content_post_details_author',
266 array(
267 'section' => 'jetpack_content_options',
268 'label' => esc_html__( 'Display author', 'jetpack' ),
269 'type' => 'checkbox',
270 )
271 );
272 }
273
274 // Post Details: Comment link.
275 if ( ! empty( $comment ) ) {
276 $wp_customize->add_setting(
277 'jetpack_content_post_details_comment',
278 array(
279 'default' => 1,
280 'type' => 'option',
281 'transport' => 'postMessage',
282 'sanitize_callback' => 'jetpack_content_options_sanitize_checkbox',
283 )
284 );
285
286 $wp_customize->add_control(
287 'jetpack_content_post_details_comment',
288 array(
289 'section' => 'jetpack_content_options',
290 'label' => esc_html__( 'Display comment link', 'jetpack' ),
291 'type' => 'checkbox',
292 )
293 );
294 }
295 }
296
297 // Add Featured Images options.
298 if ( true === $fi_archive || true === $fi_post || true === $fi_page || true === $fi_portfolio || true === $fi_fallback ) {
299 $wp_customize->add_setting( 'jetpack_content_featured_images_title' );
300
301 $wp_customize->add_control(
302 new Jetpack_Customize_Control_Title(
303 $wp_customize,
304 'jetpack_content_featured_images_title',
305 array(
306 'section' => 'jetpack_content_options',
307 'label' => esc_html__( 'Featured Images', 'jetpack' ) . sprintf( '<a href="https://en.support.wordpress.com/featured-images/" class="customize-help-toggle dashicons dashicons-editor-help" title="%1$s" rel="noopener noreferrer" target="_blank"><span class="screen-reader-text">%1$s</span></a>', esc_html__( 'Learn more about Featured Images', 'jetpack' ) ),
308 'type' => 'title',
309 'active_callback' => 'jetpack_post_thumbnail_supports',
310 )
311 )
312 );
313
314 // Featured Images: Archive.
315 if ( true === $fi_archive ) {
316 $wp_customize->add_setting(
317 'jetpack_content_featured_images_archive',
318 array(
319 'default' => $fi_archive_default,
320 'type' => 'option',
321 'sanitize_callback' => 'jetpack_content_options_sanitize_checkbox',
322 )
323 );
324
325 $wp_customize->add_control(
326 'jetpack_content_featured_images_archive',
327 array(
328 'section' => 'jetpack_content_options',
329 'label' => esc_html__( 'Display on blog and archives', 'jetpack' ),
330 'type' => 'checkbox',
331 'active_callback' => 'jetpack_post_thumbnail_supports',
332 )
333 );
334 }
335
336 // Featured Images: Post.
337 if ( true === $fi_post ) {
338 $wp_customize->add_setting(
339 'jetpack_content_featured_images_post',
340 array(
341 'default' => $fi_post_default,
342 'type' => 'option',
343 'sanitize_callback' => 'jetpack_content_options_sanitize_checkbox',
344 )
345 );
346
347 $wp_customize->add_control(
348 'jetpack_content_featured_images_post',
349 array(
350 'section' => 'jetpack_content_options',
351 'label' => esc_html__( 'Display on single posts', 'jetpack' ),
352 'type' => 'checkbox',
353 'active_callback' => 'jetpack_post_thumbnail_supports',
354 )
355 );
356 }
357
358 // Featured Images: Page.
359 if ( true === $fi_page ) {
360 $wp_customize->add_setting(
361 'jetpack_content_featured_images_page',
362 array(
363 'default' => $fi_page_default,
364 'type' => 'option',
365 'sanitize_callback' => 'jetpack_content_options_sanitize_checkbox',
366 )
367 );
368
369 $wp_customize->add_control(
370 'jetpack_content_featured_images_page',
371 array(
372 'section' => 'jetpack_content_options',
373 'label' => esc_html__( 'Display on pages', 'jetpack' ),
374 'type' => 'checkbox',
375 'active_callback' => 'jetpack_post_thumbnail_supports',
376 )
377 );
378 }
379
380 // Featured Images: Portfolio.
381 if ( true === $fi_portfolio && post_type_exists( 'jetpack-portfolio' ) ) {
382 $wp_customize->add_setting(
383 'jetpack_content_featured_images_portfolio',
384 array(
385 'default' => $fi_portfolio_default,
386 'type' => 'option',
387 'sanitize_callback' => 'jetpack_content_options_sanitize_checkbox',
388 )
389 );
390
391 $wp_customize->add_control(
392 'jetpack_content_featured_images_portfolio',
393 array(
394 'section' => 'jetpack_content_options',
395 'label' => esc_html__( 'Display on single projects', 'jetpack' ),
396 'type' => 'checkbox',
397 'active_callback' => 'jetpack_post_thumbnail_supports',
398 )
399 );
400 }
401
402 // Featured Images: Fallback.
403 if ( true === $fi_fallback ) {
404 $wp_customize->add_setting(
405 'jetpack_content_featured_images_fallback',
406 array(
407 'default' => $fi_fallback_default,
408 'type' => 'option',
409 'sanitize_callback' => 'jetpack_content_options_sanitize_checkbox',
410 )
411 );
412
413 $wp_customize->add_control(
414 'jetpack_content_featured_images_fallback',
415 array(
416 'section' => 'jetpack_content_options',
417 'label' => esc_html__( 'Automatically use first image in post', 'jetpack' ),
418 'type' => 'checkbox',
419 'active_callback' => 'jetpack_post_thumbnail_supports',
420 )
421 );
422 }
423 }
424 }
425 add_action( 'customize_register', 'jetpack_content_options_customize_register' );
426
427 /**
428 * Return whether the theme supports Post Thumbnails.
429 */
430 function jetpack_post_thumbnail_supports() {
431 return ( current_theme_supports( 'post-thumbnails' ) );
432 }
433
434 /**
435 * Sanitize the checkbox.
436 *
437 * @param int $input The unsanitized value from the setting.
438 * @return boolean|string
439 */
440 function jetpack_content_options_sanitize_checkbox( $input ) {
441 return ( 1 === (int) $input ) ? 1 : '';
442 }
443
444 /**
445 * Sanitize the Display value.
446 *
447 * @param string $display The unsanitized value from the setting.
448 * @return string.
449 */
450 function jetpack_content_options_sanitize_blog_display( $display ) {
451 if ( ! in_array( $display, array( 'content', 'excerpt', 'mixed' ), true ) ) {
452 $display = 'content';
453 }
454 return $display;
455 }
456
457 /**
458 * Binds JS handlers to make Theme Customizer preview reload changes asynchronously.
459 */
460 function jetpack_content_options_customize_preview_js() {
461 $options = get_theme_support( 'jetpack-content-options' );
462 $blog_display = ( ! empty( $options[0]['blog-display'] ) ) ? $options[0]['blog-display'] : null;
463 $blog_display = preg_grep( '/^(content|excerpt)$/', (array) $blog_display );
464 sort( $blog_display );
465 $blog_display = implode( ', ', $blog_display );
466 $blog_display = ( 'content, excerpt' === $blog_display ) ? 'mixed' : $blog_display;
467 $masonry = ( ! empty( $options[0]['masonry'] ) ) ? $options[0]['masonry'] : null;
468 $post_details = ( ! empty( $options[0]['post-details'] ) ) ? $options[0]['post-details'] : null;
469 $date = ( ! empty( $post_details['date'] ) ) ? $post_details['date'] : null;
470 $categories = ( ! empty( $post_details['categories'] ) ) ? $post_details['categories'] : null;
471 $tags = ( ! empty( $post_details['tags'] ) ) ? $post_details['tags'] : null;
472 $author = ( ! empty( $post_details['author'] ) ) ? $post_details['author'] : null;
473 $comment = ( ! empty( $post_details['comment'] ) ) ? $post_details['comment'] : null;
474
475 wp_enqueue_script( 'jetpack-content-options-customizer', plugins_url( 'customizer.js', __FILE__ ), array( 'jquery', 'customize-preview' ), '1.0', true );
476
477 wp_localize_script(
478 'jetpack-content-options-customizer',
479 'blogDisplay',
480 array(
481 'display' => get_option( 'jetpack_content_blog_display', $blog_display ),
482 'masonry' => $masonry,
483 )
484 );
485
486 wp_localize_script(
487 'jetpack-content-options-customizer',
488 'postDetails',
489 array(
490 'date' => $date,
491 'categories' => $categories,
492 'tags' => $tags,
493 'author' => $author,
494 'comment' => $comment,
495 )
496 );
497 }
498 add_action( 'customize_preview_init', 'jetpack_content_options_customize_preview_js' );
499