author-bio.php
7 months ago
blog-display.php
1 month ago
customizer.js
1 year ago
customizer.php
7 months ago
featured-images-fallback.php
2 weeks ago
featured-images.php
1 month ago
post-details.php
7 months ago
post-details.php
188 lines
| 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 |