PluginProbe
Jetpack – WP Security, Backup, Speed, & Growth / 16.2
Jetpack – WP Security, Backup, Speed, & Growth v16.2
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 14.1.1 14.2.2 All 502 releases
jetpack / modules / theme-tools / content-options / post-details.php

post-details.php in Jetpack – WP Security, Backup, Speed, & Growth 16.2, at modules/theme-tools/content-options/post-details.php

188 lines 6.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Theme Tools: functions for Post Details.
4 *
5 * @package automattic/jetpack
6 */
7
8 if ( ! defined( 'ABSPATH' ) ) {
9 exit( 0 );
10 }
11
12 if ( ! function_exists( 'jetpack_post_details_enqueue_scripts' ) ) {
13
14 /**
15 * The function to include Post Details in a theme's stylesheet.
16 *
17 * @deprecated 13.9 Moved to Classic Theme Helper package.
18 */
19 function jetpack_post_details_enqueue_scripts() {
20 _deprecated_function( __FUNCTION__, 'jetpack-13.9' );
21 // Make sure we can proceed.
22 list( $should_run, $options, $definied, $post_details ) = jetpack_post_details_should_run();
23
24 if ( ! $should_run ) {
25 return;
26 }
27
28 list( $date_option, $categories_option, $tags_option, $author_option, $comment_option ) = $options;
29 list( $date, $categories, $tags, $author, $comment ) = $definied;
30
31 $elements = array();
32
33 // If date option is unticked, add it to the list of classes.
34 if ( 1 !== (int) $date_option && ! empty( $date ) ) {
35 $elements[] = $date;
36 }
37
38 // If categories option is unticked, add it to the list of classes.
39 if ( 1 !== (int) $categories_option && ! empty( $categories ) ) {
40 $elements[] = $categories;
41 }
42
43 // If tags option is unticked, add it to the list of classes.
44 if ( 1 !== (int) $tags_option && ! empty( $tags ) ) {
45 $elements[] = $tags;
46 }
47
48 // If author option is unticked, add it to the list of classes.
49 if ( 1 !== (int) $author_option && ! empty( $author ) ) {
50 $elements[] = $author;
51 }
52
53 // If comment option is unticked, add it to the list of classes.
54 if ( 1 !== (int) $comment_option && ! empty( $comment ) ) {
55 $elements[] = $comment;
56 }
57
58 // If the Elements array is empty, return without setting custom CSS.
59 if ( empty( $elements ) ) {
60 return;
61 }
62
63 // Get the list of classes.
64 $elements = implode( ', ', $elements );
65
66 // Hide the classes with CSS.
67 $css = $elements . ' { clip: rect(1px, 1px, 1px, 1px); height: 1px; position: absolute; overflow: hidden; width: 1px; }';
68
69 // Add the CSS to the stylesheet.
70 wp_add_inline_style( $post_details['stylesheet'], $css );
71 }
72 add_action( 'wp_enqueue_scripts', 'jetpack_post_details_enqueue_scripts' );
73
74 }
75
76 if ( ! function_exists( 'jetpack_post_details_body_classes' ) ) {
77
78 /**
79 * Adds custom classes to the array of body classes.
80 *
81 * @deprecated 13.9 Moved to Classic Theme Helper package.
82 * @param array $classes Classes for the body element.
83 */
84 function jetpack_post_details_body_classes( $classes ) {
85 _deprecated_function( __FUNCTION__, 'jetpack-13.9' );
86 // Make sure we can proceed.
87 list( $should_run, $options, $definied ) = jetpack_post_details_should_run();
88
89 if ( ! $should_run ) {
90 return $classes;
91 }
92
93 list( $date_option, $categories_option, $tags_option, $author_option, $comment_option ) = $options;
94 list( $date, $categories, $tags, $author, $comment ) = $definied;
95
96 // If date option is unticked, add a class of 'date-hidden' to the body.
97 if ( 1 !== (int) $date_option && ! empty( $date ) ) {
98 $classes[] = 'date-hidden';
99 }
100
101 // If categories option is unticked, add a class of 'categories-hidden' to the body.
102 if ( 1 !== (int) $categories_option && ! empty( $categories ) ) {
103 $classes[] = 'categories-hidden';
104 }
105
106 // If tags option is unticked, add a class of 'tags-hidden' to the body.
107 if ( 1 !== (int) $tags_option && ! empty( $tags ) ) {
108 $classes[] = 'tags-hidden';
109 }
110
111 // If author option is unticked, add a class of 'author-hidden' to the body.
112 if ( 1 !== (int) $author_option && ! empty( $author ) ) {
113 $classes[] = 'author-hidden';
114 }
115
116 // If comment option is unticked, add a class of 'comment-hidden' to the body.
117 if ( 1 !== (int) $comment_option && ! empty( $comment ) ) {
118 $classes[] = 'comment-hidden';
119 }
120
121 return $classes;
122 }
123 add_filter( 'body_class', 'jetpack_post_details_body_classes' );
124
125 }
126
127 if ( ! function_exists( 'jetpack_post_details_should_run' ) ) {
128
129 /**
130 * Determines if Post Details should run.
131 *
132 * @deprecated 13.9 Moved to Classic Theme Helper package.
133 */
134 function jetpack_post_details_should_run() {
135 _deprecated_function( __FUNCTION__, 'jetpack-13.9' );
136 // Empty value representing falsy return value.
137 $void = array( false, null, null, null );
138
139 // If the theme doesn't support 'jetpack-content-options', don't continue.
140 if ( ! current_theme_supports( 'jetpack-content-options' ) ) {
141 return $void;
142 }
143
144 $options = get_theme_support( 'jetpack-content-options' );
145 $post_details = ( ! empty( $options[0]['post-details'] ) ) ? $options[0]['post-details'] : null;
146
147 // If the theme doesn't support 'jetpack-content-options[ 'post-details' ]', don't continue.
148 if ( empty( $post_details ) ) {
149 return $void;
150 }
151
152 $date = ( ! empty( $post_details['date'] ) ) ? $post_details['date'] : null;
153 $categories = ( ! empty( $post_details['categories'] ) ) ? $post_details['categories'] : null;
154 $tags = ( ! empty( $post_details['tags'] ) ) ? $post_details['tags'] : null;
155 $author = ( ! empty( $post_details['author'] ) ) ? $post_details['author'] : null;
156 $comment = ( ! empty( $post_details['comment'] ) ) ? $post_details['comment'] : null;
157
158 // If there is no stylesheet and there are no date, categories, tags, author or comment declared, don't continue.
159 if (
160 empty( $post_details['stylesheet'] )
161 && ( empty( $date )
162 || empty( $categories )
163 || empty( $tags )
164 || empty( $author )
165 || empty( $comment ) )
166 ) {
167 return $void;
168 }
169
170 $date_option = Jetpack_Options::get_option_and_ensure_autoload( 'jetpack_content_post_details_date', 1 );
171 $categories_option = Jetpack_Options::get_option_and_ensure_autoload( 'jetpack_content_post_details_categories', 1 );
172 $tags_option = Jetpack_Options::get_option_and_ensure_autoload( 'jetpack_content_post_details_tags', 1 );
173 $author_option = Jetpack_Options::get_option_and_ensure_autoload( 'jetpack_content_post_details_author', 1 );
174 $comment_option = Jetpack_Options::get_option_and_ensure_autoload( 'jetpack_content_post_details_comment', 1 );
175
176 $options = array( $date_option, $categories_option, $tags_option, $author_option, $comment_option );
177 $definied = array( $date, $categories, $tags, $author, $comment );
178
179 // If all the options are ticked, don't continue.
180 if ( array( 1, 1, 1, 1, 1 ) === $options ) {
181 return $void;
182 }
183
184 return array( true, $options, $definied, $post_details );
185 }
186
187 }
188