PluginProbe
Jetpack – WP Security, Backup, Speed, & Growth / 16.3
Jetpack – WP Security, Backup, Speed, & Growth v16.3
16.3 16.3-beta 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 All 508 releases
jetpack / jetpack_vendor / automattic / jetpack-classic-theme-helper / src / content-options.php

content-options.php in Jetpack – WP Security, Backup, Speed, & Growth 16.3, at jetpack_vendor/automattic/jetpack-classic-theme-helper/src/content-options.php

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