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