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