Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 8
100.00% covered (success)
100.00%
4 / 4
CRAP
n/a
0 / 0
jetpack_content_options_init
n/a
0 / 0
n/a
0 / 0
4
jetpack_featured_images_get_settings
n/a
0 / 0
n/a
0 / 0
17
jetpack_featured_images_should_load
n/a
0 / 0
n/a
0 / 0
9
jetpack_featured_images_fallback_should_load
n/a
0 / 0
n/a
0 / 0
3
1<?php
2/**
3 * Jetpack Compatibility File
4 * See: https://jetpack.com/
5 *
6 * @package automattic/jetpack
7 */
8
9if ( ! defined( 'ABSPATH' ) ) {
10    exit( 0 );
11}
12
13if ( ! class_exists( '\Automattic\Jetpack\Classic_Theme_Helper\Main' ) ) {
14
15    /**
16     * Content Options.
17     *
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        ) );
49     */
50
51    if ( ! function_exists( 'jetpack_content_options_init' ) ) {
52
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            }
65
66            // Load the Customizer options.
67            require __DIR__ . '/content-options/customizer.php';
68
69            // Load Blog Display function.
70            require __DIR__ . '/content-options/blog-display.php';
71
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            }
87        }
88        add_action( 'init', 'jetpack_content_options_init' );
89
90    }
91
92    if ( ! function_exists( 'jetpack_featured_images_get_settings' ) ) {
93
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' );
102
103            $featured_images = ( ! empty( $options[0]['featured-images'] ) ) ? $options[0]['featured-images'] : null;
104
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            );
117
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            );
128
129            return $settings;
130        }
131
132    }
133
134    if ( ! function_exists( 'jetpack_featured_images_should_load' ) ) {
135
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            }
147
148            $opts = jetpack_featured_images_get_settings();
149
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 (
152            ( true !== $opts['archive'] && true !== $opts['post'] && true !== $opts['page'] )
153            || ( 1 === $opts['archive-option'] && 1 === $opts['post-option'] && 1 === $opts['page-option'] && ! is_customize_preview() )
154            ) {
155                return false;
156            }
157
158            return true;
159        }
160
161    }
162
163    if ( ! function_exists( 'jetpack_featured_images_fallback_should_load' ) ) {
164
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            }
176
177            $opts = jetpack_featured_images_get_settings();
178
179            // If the theme doesn't support fallback, don't continue.
180            if ( true !== $opts['fallback'] ) {
181                return false;
182            }
183
184            return true;
185        }
186
187    }
188}