summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/jetpack/modules/theme-tools/content-options')
-rw-r--r--plugins/jetpack/modules/theme-tools/content-options/author-bio.php60
-rw-r--r--plugins/jetpack/modules/theme-tools/content-options/blog-display.php240
-rw-r--r--plugins/jetpack/modules/theme-tools/content-options/customizer.js217
-rw-r--r--plugins/jetpack/modules/theme-tools/content-options/customizer.php482
-rw-r--r--plugins/jetpack/modules/theme-tools/content-options/featured-images-fallback.php161
-rw-r--r--plugins/jetpack/modules/theme-tools/content-options/featured-images.php84
-rw-r--r--plugins/jetpack/modules/theme-tools/content-options/post-details.php150
7 files changed, 0 insertions, 1394 deletions
diff --git a/plugins/jetpack/modules/theme-tools/content-options/author-bio.php b/plugins/jetpack/modules/theme-tools/content-options/author-bio.php
deleted file mode 100644
index 89d4603c..00000000
--- a/plugins/jetpack/modules/theme-tools/content-options/author-bio.php
+++ /dev/null
@@ -1,60 +0,0 @@
-<?php
-/**
- * The function to display Author Bio in a theme.
- */
-function jetpack_author_bio() {
- // If the theme doesn't support 'jetpack-content-options', don't continue.
- if ( ! current_theme_supports( 'jetpack-content-options' ) ) {
- return;
- }
-
- $options = get_theme_support( 'jetpack-content-options' );
- $author_bio = ( ! empty( $options[0]['author-bio'] ) ) ? $options[0]['author-bio'] : null;
- $author_bio_default = ( isset( $options[0]['author-bio-default'] ) && false === $options[0]['author-bio-default'] ) ? '' : 1;
-
- // If the theme doesn't support 'jetpack-content-options[ 'author-bio' ]', don't continue.
- if ( true !== $author_bio ) {
- return;
- }
-
- // If 'jetpack_content_author_bio' is false, don't continue.
- if ( ! get_option( 'jetpack_content_author_bio', $author_bio_default ) ) {
- return;
- }
-
- // If we aren't on a single post, don't continue.
- if ( ! is_single() ) {
- return;
- }
- ?>
- <div class="entry-author">
- <div class="author-avatar">
- <?php
- /**
- * Filter the author bio avatar size.
- *
- * @param int $size The avatar height and width size in pixels.
- *
- * @module theme-tools
- *
- * @since 4.5.0
- */
- $author_bio_avatar_size = apply_filters( 'jetpack_author_bio_avatar_size', 48 );
-
- echo get_avatar( get_the_author_meta( 'user_email' ), $author_bio_avatar_size );
- ?>
- </div><!-- .author-avatar -->
-
- <div class="author-heading">
- <h2 class="author-title"><?php printf( esc_html__( 'Published by %s', 'jetpack' ), '<span class="author-name">' . get_the_author() . '</span>' ); ?></h2>
- </div><!-- .author-heading -->
-
- <p class="author-bio">
- <?php the_author_meta( 'description' ); ?>
- <a class="author-link" href="<?php echo esc_url( get_author_posts_url( get_the_author_meta( 'ID' ) ) ); ?>" rel="author">
- <?php printf( esc_html__( 'View all posts by %s', 'jetpack' ), get_the_author() ); ?>
- </a>
- </p><!-- .author-bio -->
- </div><!-- .entry-auhtor -->
- <?php
-}
diff --git a/plugins/jetpack/modules/theme-tools/content-options/blog-display.php b/plugins/jetpack/modules/theme-tools/content-options/blog-display.php
deleted file mode 100644
index a3f74d0b..00000000
--- a/plugins/jetpack/modules/theme-tools/content-options/blog-display.php
+++ /dev/null
@@ -1,240 +0,0 @@
-<?php
-/**
- * The functions to display Content or Excerpt in a theme.
- */
-
-/**
- * If the theme doesn't support 'jetpack-content-options', don't continue.
- */
-if ( ! current_theme_supports( 'jetpack-content-options' ) ) {
- return;
-}
-
-/**
- * Get the Blog Display setting.
- * If theme is using both 'Content' and 'Excerpt' then this setting will be called 'Mixed'.
- */
-$options = get_theme_support( 'jetpack-content-options' );
-$blog_display = ( ! empty( $options[0]['blog-display'] ) ) ? $options[0]['blog-display'] : null;
-$blog_display = preg_grep( '/^(content|excerpt)$/', (array) $blog_display );
-sort( $blog_display );
-$blog_display = implode( ', ', $blog_display );
-$blog_display = ( 'content, excerpt' === $blog_display ) ? 'mixed' : $blog_display;
-
-/**
- * If the theme doesn't support 'jetpack-content-options[ 'blog-display' ]', don't continue.
- */
-if ( ! in_array( $blog_display, array( 'content', 'excerpt', 'mixed' ) ) ) {
- return;
-}
-
-/**
- * Apply Content filters.
- */
-function jetpack_blog_display_custom_excerpt( $content ) {
- $post = get_post();
- if ( empty( $post->post_excerpt ) ) {
- $text = strip_shortcodes( $post->post_content );
- $text = str_replace( ']]>', ']]&gt;', $text );
- $text = strip_tags( $text );
- /** This filter is documented in wp-includes/formatting.php */
- $excerpt_length = apply_filters( 'excerpt_length', 55 );
- /** This filter is documented in wp-includes/formatting.php */
- $excerpt_more = apply_filters( 'excerpt_more', ' ' . '[...]' );
-
- /*
- * translators: If your word count is based on single characters (e.g. East Asian characters),
- * enter 'characters_excluding_spaces' or 'characters_including_spaces'. Otherwise, enter 'words'.
- * Do not translate into your own language.
- */
- if ( strpos( _x( 'words', 'Word count type. Do not translate!' ), 'characters' ) === 0 && preg_match( '/^utf\-?8$/i', get_option( 'blog_charset' ) ) ) {
- $text = trim( preg_replace( "/[\n\r\t ]+/", ' ', $text ), ' ' );
- preg_match_all( '/./u', $text, $words );
- $words = array_slice( $words[0], 0, $excerpt_length + 1 );
- $sep = '';
- } else {
- $words = preg_split( "/[\n\r\t ]+/", $text, $excerpt_length + 1, PREG_SPLIT_NO_EMPTY );
- $sep = ' ';
- }
-
- if ( count( $words ) > $excerpt_length ) {
- array_pop( $words );
- $text = implode( $sep, $words );
- $text = $text . $excerpt_more;
- } else {
- $text = implode( $sep, $words );
- }
- } else {
- $text = wp_kses_post( $post->post_excerpt );
- }
- return sprintf( '<p>%s</p>', $text );
-}
-
-/**
- * Display Excerpt instead of Content.
- */
-function jetpack_the_content_to_the_excerpt( $content ) {
- if ( ( is_home() || is_archive() ) && ! is_post_type_archive( array( 'jetpack-testimonial', 'jetpack-portfolio', 'product' ) ) ) {
- if ( post_password_required() ) {
- $content = sprintf( '<p>%s</p>', esc_html__( 'There is no excerpt because this is a protected post.', 'jetpack' ) );
- } else {
- $content = jetpack_blog_display_custom_excerpt( $content );
- }
- }
- return $content;
-}
-
-/**
- * Display Content instead of Excerpt.
- */
-function jetpack_the_excerpt_to_the_content( $content ) {
- if ( ( is_home() || is_archive() ) && ! is_post_type_archive( array( 'jetpack-testimonial', 'jetpack-portfolio', 'product' ) ) ) {
- ob_start();
- the_content(
- sprintf(
- wp_kses(
- /* translators: %s: Name of current post. Only visible to screen readers */
- __( 'Continue reading<span class="screen-reader-text"> "%s"</span>', 'jetpack' ),
- array(
- 'span' => array(
- 'class' => array(),
- ),
- )
- ),
- get_the_title()
- )
- );
- $content = ob_get_clean();
- }
- return $content;
-}
-
-/**
- * Display both Content and Excerpt instead of Content in the Customizer so live preview can switch between them.
- */
-function jetpack_the_content_customizer( $content ) {
- $class = jetpack_the_content_customizer_class();
- if ( ( is_home() || is_archive() ) && ! is_post_type_archive( array( 'jetpack-testimonial', 'jetpack-portfolio', 'product' ) ) ) {
- if ( post_password_required() ) {
- $excerpt = sprintf( '<p>%s</p>', esc_html__( 'There is no excerpt because this is a protected post.', 'jetpack' ) );
- } else {
- $excerpt = jetpack_blog_display_custom_excerpt( $content );
- }
- }
- if ( empty( $excerpt ) ) {
- return $content;
- } else {
- return sprintf( '<div class="jetpack-blog-display %s jetpack-the-content">%s</div><div class="jetpack-blog-display %s jetpack-the-excerpt">%s</div>', $class, $content, $class, $excerpt );
- }
-}
-
-/**
- * Display both Content and Excerpt instead of Excerpt in the Customizer so live preview can switch between them.
- */
-function jetpack_the_excerpt_customizer( $excerpt ) {
- if ( ( is_home() || is_archive() ) && ! is_post_type_archive( array( 'jetpack-testimonial', 'jetpack-portfolio', 'product' ) ) ) {
- ob_start();
- the_content(
- sprintf(
- wp_kses(
- /* translators: %s: Name of current post. Only visible to screen readers */
- __( 'Continue reading<span class="screen-reader-text"> "%s"</span>', 'jetpack' ),
- array(
- 'span' => array(
- 'class' => array(),
- ),
- )
- ),
- get_the_title()
- )
- );
- $content = ob_get_clean();
- }
- if ( empty( $content ) ) {
- return $excerpt;
- } else {
- return sprintf( '<div class="jetpack-blog-display jetpack-the-content">%s</div><div class="jetpack-blog-display jetpack-the-excerpt">%s</div>', $content, $excerpt );
- }
-}
-
-/**
- * Display Content instead of Excerpt in the Customizer when theme uses a 'Mixed' display.
- */
-function jetpack_the_excerpt_mixed_customizer( $content ) {
- if ( ( is_home() || is_archive() ) && ! is_post_type_archive( array( 'jetpack-testimonial', 'jetpack-portfolio', 'product' ) ) ) {
- jetpack_the_content_customizer_class( 'output-the-excerpt' );
- ob_start();
- the_content();
- $content = ob_get_clean();
- }
- return $content;
-}
-
-/**
- * Returns a class value, `output-the-content` by default.
- * Used for themes with a 'Mixed' Blog Display so we can tell which output is by default.
- */
-function jetpack_the_content_customizer_class( $new_class = null ) {
- static $class;
- if ( isset( $new_class ) ) {
- // Assign a new class and return.
- $class = $new_class;
- } elseif ( isset( $class ) ) {
- // Reset the class after getting value.
- $prev_class = $class;
- $class = null;
- return $prev_class;
- } else {
- // Return default class value.
- return 'output-the-content';
- }
-}
-
-if ( is_customize_preview() ) {
- /*
- * Display Content and Excerpt if the default Blog Display is 'Content'
- * and we are in the Customizer.
- */
- if ( 'content' === $blog_display ) {
- add_filter( 'the_content', 'jetpack_the_content_customizer' );
- }
-
- /*
- * Display Content and Excerpt if the default Blog Display is 'Excerpt'
- * and we are in the Customizer.
- */
- if ( 'excerpt' === $blog_display ) {
- add_filter( 'the_excerpt', 'jetpack_the_excerpt_customizer' );
- }
-
- /*
- * Display Content and Excerpt if the default Blog Display is 'Mixed'
- * and we are in the Customizer.
- */
- if ( 'mixed' === $blog_display ) {
- add_filter( 'the_content', 'jetpack_the_content_customizer' );
- add_filter( 'the_excerpt', 'jetpack_the_excerpt_mixed_customizer' );
- }
-} else {
- $display_option = get_option( 'jetpack_content_blog_display', $blog_display );
-
- /*
- * Display Excerpt if the default Blog Display is 'Content'
- * or default Blog Display is 'Mixed'
- * and the Option picked is 'Post Excerpt'
- * and we aren't in the Customizer.
- */
- if ( ( 'content' === $blog_display || 'mixed' === $blog_display ) && 'excerpt' === $display_option ) {
- add_filter( 'the_content', 'jetpack_the_content_to_the_excerpt' );
- }
-
- /*
- * Display Content if the default Blog Display is 'Excerpt'
- * or default Blog Display is 'Mixed'
- * and the Option picked is 'Full Post'
- * and we aren't in the Customizer.
- */
- if ( ( 'excerpt' === $blog_display || 'mixed' === $blog_display ) && 'content' === $display_option ) {
- add_filter( 'the_excerpt', 'jetpack_the_excerpt_to_the_content' );
- }
-}
diff --git a/plugins/jetpack/modules/theme-tools/content-options/customizer.js b/plugins/jetpack/modules/theme-tools/content-options/customizer.js
deleted file mode 100644
index e6b9b132..00000000
--- a/plugins/jetpack/modules/theme-tools/content-options/customizer.js
+++ /dev/null
@@ -1,217 +0,0 @@
-/* global blogDisplay, postDetails */
-
-/**
- * customizer.js
- *
- * Theme Customizer enhancements for a better user experience.
- *
- * Contains handlers to make Theme Customizer preview reload changes asynchronously.
- */
-
-( function( $ ) {
- // Blog Display
- wp.customize( 'jetpack_content_blog_display', function( value ) {
- if ( 'content' === blogDisplay.display ) {
- $( '.jetpack-blog-display.jetpack-the-excerpt' ).css( {
- 'clip': 'rect(1px, 1px, 1px, 1px)',
- 'position': 'absolute'
- } );
- $( '.jetpack-blog-display.jetpack-the-content' ).css( {
- 'clip': 'auto',
- 'position': 'relative'
- } );
- } else if ( 'excerpt' === blogDisplay.display ) {
- $( '.jetpack-blog-display.jetpack-the-content' ).css( {
- 'clip': 'rect(1px, 1px, 1px, 1px)',
- 'position': 'absolute'
- } );
- $( '.jetpack-blog-display.jetpack-the-excerpt' ).css( {
- 'clip': 'auto',
- 'position': 'relative'
- } );
- } else if ( 'mixed' === blogDisplay.display ) {
- $( '.jetpack-blog-display.jetpack-the-content.output-the-content' ).css( {
- 'clip': 'auto',
- 'position': 'relative'
- } );
- $( '.jetpack-blog-display.jetpack-the-excerpt.output-the-content' ).css( {
- 'clip': 'rect(1px, 1px, 1px, 1px)',
- 'position': 'absolute'
- } );
- $( '.jetpack-blog-display.jetpack-the-content.output-the-excerpt' ).css( {
- 'clip': 'rect(1px, 1px, 1px, 1px)',
- 'position': 'absolute'
- } );
- $( '.jetpack-blog-display.jetpack-the-excerpt.output-the-excerpt' ).css( {
- 'clip': 'auto',
- 'position': 'relative'
- } );
- }
- value.bind( function( to ) {
- if ( 'content' === to ) {
- $( '.jetpack-blog-display.jetpack-the-excerpt' ).css( {
- 'clip': 'rect(1px, 1px, 1px, 1px)',
- 'position': 'absolute'
- } );
- $( '.jetpack-blog-display.jetpack-the-content' ).css( {
- 'clip': 'auto',
- 'position': 'relative'
- } );
- } else if ( 'excerpt' === to ) {
- $( '.jetpack-blog-display.jetpack-the-content' ).css( {
- 'clip': 'rect(1px, 1px, 1px, 1px)',
- 'position': 'absolute'
- } );
- $( '.jetpack-blog-display.jetpack-the-excerpt' ).css( {
- 'clip': 'auto',
- 'position': 'relative'
- } );
- } else if ( 'mixed' === to ) {
- $( '.jetpack-blog-display.jetpack-the-content.output-the-content' ).css( {
- 'clip': 'auto',
- 'position': 'relative'
- } );
- $( '.jetpack-blog-display.jetpack-the-excerpt.output-the-content' ).css( {
- 'clip': 'rect(1px, 1px, 1px, 1px)',
- 'position': 'absolute'
- } );
- $( '.jetpack-blog-display.jetpack-the-content.output-the-excerpt' ).css( {
- 'clip': 'rect(1px, 1px, 1px, 1px)',
- 'position': 'absolute'
- } );
- $( '.jetpack-blog-display.jetpack-the-excerpt.output-the-excerpt' ).css( {
- 'clip': 'auto',
- 'position': 'relative'
- } );
- }
- if ( blogDisplay.masonry ) {
- $( blogDisplay.masonry ).masonry();
- }
- } );
- } );
-
- // Post Details: Date.
- wp.customize( 'jetpack_content_post_details_date', function( value ) {
- value.bind( function( to ) {
- if ( false === to ) {
- $( postDetails.date ).css( {
- 'clip': 'rect(1px, 1px, 1px, 1px)',
- 'height': '1px',
- 'overflow': 'hidden',
- 'position': 'absolute',
- 'width': '1px'
- } );
- $( 'body' ).addClass( 'date-hidden' );
- } else {
- $( postDetails.date ).css( {
- 'clip': 'auto',
- 'height': 'auto',
- 'overflow': 'auto',
- 'position': 'relative',
- 'width': 'auto'
- } );
- $( 'body' ).removeClass( 'date-hidden' );
- }
- } );
- } );
-
- // Post Details: Categories.
- wp.customize( 'jetpack_content_post_details_categories', function( value ) {
- value.bind( function( to ) {
- if ( false === to ) {
- $( postDetails.categories ).css( {
- 'clip': 'rect(1px, 1px, 1px, 1px)',
- 'height': '1px',
- 'overflow': 'hidden',
- 'position': 'absolute',
- 'width': '1px'
- } );
- $( 'body' ).addClass( 'categories-hidden' );
- } else {
- $( postDetails.categories ).css( {
- 'clip': 'auto',
- 'height': 'auto',
- 'overflow': 'auto',
- 'position': 'relative',
- 'width': 'auto'
- } );
- $( 'body' ).removeClass( 'categories-hidden' );
- }
- } );
- } );
-
- // Post Details: Tags.
- wp.customize( 'jetpack_content_post_details_tags', function( value ) {
- value.bind( function( to ) {
- if ( false === to ) {
- $( postDetails.tags ).css( {
- 'clip': 'rect(1px, 1px, 1px, 1px)',
- 'height': '1px',
- 'overflow': 'hidden',
- 'position': 'absolute',
- 'width': '1px'
- } );
- $( 'body' ).addClass( 'tags-hidden' );
- } else {
- $( postDetails.tags ).css( {
- 'clip': 'auto',
- 'height': 'auto',
- 'overflow': 'auto',
- 'position': 'relative',
- 'width': 'auto'
- } );
- $( 'body' ).removeClass( 'tags-hidden' );
- }
- } );
- } );
-
- // Post Details: Author.
- wp.customize( 'jetpack_content_post_details_author', function( value ) {
- value.bind( function( to ) {
- if ( false === to ) {
- $( postDetails.author ).css( {
- 'clip': 'rect(1px, 1px, 1px, 1px)',
- 'height': '1px',
- 'overflow': 'hidden',
- 'position': 'absolute',
- 'width': '1px'
- } );
- $( 'body' ).addClass( 'author-hidden' );
- } else {
- $( postDetails.author ).css( {
- 'clip': 'auto',
- 'height': 'auto',
- 'overflow': 'auto',
- 'position': 'relative',
- 'width': 'auto'
- } );
- $( 'body' ).removeClass( 'author-hidden' );
- }
- } );
- } );
-
- // Post Details: Comment link.
- wp.customize( 'jetpack_content_post_details_comment', function( value ) {
- value.bind( function( to ) {
- if ( false === to ) {
- $( postDetails.comment ).css( {
- 'clip': 'rect(1px, 1px, 1px, 1px)',
- 'height': '1px',
- 'overflow': 'hidden',
- 'position': 'absolute',
- 'width': '1px'
- } );
- $( 'body' ).addClass( 'comment-hidden' );
- } else {
- $( postDetails.comment ).css( {
- 'clip': 'auto',
- 'height': 'auto',
- 'overflow': 'auto',
- 'position': 'relative',
- 'width': 'auto'
- } );
- $( 'body' ).removeClass( 'comment-hidden' );
- }
- } );
- } );
-} )( jQuery );
diff --git a/plugins/jetpack/modules/theme-tools/content-options/customizer.php b/plugins/jetpack/modules/theme-tools/content-options/customizer.php
deleted file mode 100644
index 844e5074..00000000
--- a/plugins/jetpack/modules/theme-tools/content-options/customizer.php
+++ /dev/null
@@ -1,482 +0,0 @@
-<?php
-/**
- * Add Content section to the Theme Customizer.
- *
- * @param WP_Customize_Manager $wp_customize Theme Customizer object.
- */
-function jetpack_content_options_customize_register( $wp_customize ) {
- $options = get_theme_support( 'jetpack-content-options' );
- $blog_display = ( ! empty( $options[0]['blog-display'] ) ) ? $options[0]['blog-display'] : null;
- $blog_display = preg_grep( '/^(content|excerpt)$/', (array) $blog_display );
- sort( $blog_display );
- $blog_display = implode( ', ', $blog_display );
- $blog_display = ( 'content, excerpt' === $blog_display ) ? 'mixed' : $blog_display;
- $author_bio = ( ! empty( $options[0]['author-bio'] ) ) ? $options[0]['author-bio'] : null;
- $author_bio_default = ( isset( $options[0]['author-bio-default'] ) && false === $options[0]['author-bio-default'] ) ? '' : 1;
- $post_details = ( ! empty( $options[0]['post-details'] ) ) ? $options[0]['post-details'] : null;
- $date = ( ! empty( $post_details['date'] ) ) ? $post_details['date'] : null;
- $categories = ( ! empty( $post_details['categories'] ) ) ? $post_details['categories'] : null;
- $tags = ( ! empty( $post_details['tags'] ) ) ? $post_details['tags'] : null;
- $author = ( ! empty( $post_details['author'] ) ) ? $post_details['author'] : null;
- $comment = ( ! empty( $post_details['comment'] ) ) ? $post_details['comment'] : null;
- $featured_images = ( ! empty( $options[0]['featured-images'] ) ) ? $options[0]['featured-images'] : null;
- $fi_archive = ( ! empty( $featured_images['archive'] ) ) ? $featured_images['archive'] : null;
- $fi_post = ( ! empty( $featured_images['post'] ) ) ? $featured_images['post'] : null;
- $fi_page = ( ! empty( $featured_images['page'] ) ) ? $featured_images['page'] : null;
- $fi_portfolio = ( ! empty( $featured_images['portfolio'] ) ) ? $featured_images['portfolio'] : null;
- $fi_fallback = ( ! empty( $featured_images['fallback'] ) ) ? $featured_images['fallback'] : null;
- $fi_archive_default = ( isset( $featured_images['archive-default'] ) && false === $featured_images['archive-default'] ) ? '' : 1;
- $fi_post_default = ( isset( $featured_images['post-default'] ) && false === $featured_images['post-default'] ) ? '' : 1;
- $fi_page_default = ( isset( $featured_images['page-default'] ) && false === $featured_images['page-default'] ) ? '' : 1;
- $fi_portfolio_default = ( isset( $featured_images['portfolio-default'] ) && false === $featured_images['portfolio-default'] ) ? '' : 1;
- $fi_fallback_default = ( isset( $featured_images['fallback-default'] ) && false === $featured_images['fallback-default'] ) ? '' : 1;
-
- // If the theme doesn't support 'jetpack-content-options[ 'blog-display' ]', 'jetpack-content-options[ 'author-bio' ]', 'jetpack-content-options[ 'post-details' ]' and 'jetpack-content-options[ 'featured-images' ]', don't continue.
- if ( ( ! in_array( $blog_display, array( 'content', 'excerpt', 'mixed' ) ) )
- && ( true !== $author_bio )
- && ( ( empty( $post_details['stylesheet'] ) )
- && ( empty( $date )
- || empty( $categories )
- || empty( $tags )
- || empty( $author )
- || empty( $comment ) ) )
- && ( true !== $fi_archive && true !== $fi_post && true !== $fi_page && true !== $fi_portfolio && true !== $fi_fallback ) ) {
- return;
- }
-
- // New control type: Title.
- class Jetpack_Customize_Control_Title extends WP_Customize_Control {
- public $type = 'title';
-
- public function render_content() {
- ?>
- <span class="customize-control-title"><?php echo wp_kses_post( $this->label ); ?></span>
- <?php
- }
- }
-
- // Add Content section.
- $wp_customize->add_section(
- 'jetpack_content_options',
- array(
- 'title' => esc_html__( 'Content Options', 'jetpack' ),
- 'theme_supports' => 'jetpack-content-options',
- 'priority' => 100,
- )
- );
-
- // Add Blog Display option.
- if ( in_array( $blog_display, array( 'content', 'excerpt', 'mixed' ) ) ) {
- if ( 'mixed' === $blog_display ) {
- $blog_display_choices = array(
- 'content' => esc_html__( 'Full post', 'jetpack' ),
- 'excerpt' => esc_html__( 'Post excerpt', 'jetpack' ),
- 'mixed' => esc_html__( 'Default', 'jetpack' ),
- );
-
- $blog_display_description = esc_html__( 'Choose between a full post or an excerpt for the blog and archive pages, or opt for the theme\'s default combination of excerpt and full post.', 'jetpack' );
- } else {
- $blog_display_choices = array(
- 'content' => esc_html__( 'Full post', 'jetpack' ),
- 'excerpt' => esc_html__( 'Post excerpt', 'jetpack' ),
- );
-
- $blog_display_description = esc_html__( 'Choose between a full post or an excerpt for the blog and archive pages.', 'jetpack' );
-
- if ( 'mixed' === get_option( 'jetpack_content_blog_display' ) ) {
- update_option( 'jetpack_content_blog_display', $blog_display );
- }
- }
-
- $wp_customize->add_setting(
- 'jetpack_content_blog_display',
- array(
- 'default' => $blog_display,
- 'type' => 'option',
- 'transport' => 'postMessage',
- 'sanitize_callback' => 'jetpack_content_options_sanitize_blog_display',
- )
- );
-
- $wp_customize->add_control(
- 'jetpack_content_blog_display',
- array(
- 'section' => 'jetpack_content_options',
- 'label' => esc_html__( 'Blog Display', 'jetpack' ),
- 'description' => $blog_display_description,
- 'type' => 'radio',
- 'choices' => $blog_display_choices,
- )
- );
- }
-
- // Add Author Bio option.
- if ( true === $author_bio ) {
- $wp_customize->add_setting( 'jetpack_content_author_bio_title' );
-
- $wp_customize->add_control(
- new Jetpack_Customize_Control_Title(
- $wp_customize,
- 'jetpack_content_author_bio_title',
- array(
- 'section' => 'jetpack_content_options',
- 'label' => esc_html__( 'Author Bio', 'jetpack' ),
- 'type' => 'title',
- )
- )
- );
-
- $wp_customize->add_setting(
- 'jetpack_content_author_bio',
- array(
- 'default' => $author_bio_default,
- 'type' => 'option',
- 'sanitize_callback' => 'jetpack_content_options_sanitize_checkbox',
- )
- );
-
- $wp_customize->add_control(
- 'jetpack_content_author_bio',
- array(
- 'section' => 'jetpack_content_options',
- 'label' => esc_html__( 'Display on single posts', 'jetpack' ),
- 'type' => 'checkbox',
- )
- );
- }
-
- // Add Post Details options.
- if ( ( ! empty( $post_details ) )
- && ( ! empty( $post_details['stylesheet'] ) )
- && ( ! empty( $date )
- || ! empty( $categories )
- || ! empty( $tags )
- || ! empty( $author )
- || ! empty( $comment ) ) ) {
- $wp_customize->add_setting( 'jetpack_content_post_details_title' );
-
- $wp_customize->add_control(
- new Jetpack_Customize_Control_Title(
- $wp_customize,
- 'jetpack_content_post_details_title',
- array(
- 'section' => 'jetpack_content_options',
- 'label' => esc_html__( 'Post Details', 'jetpack' ),
- 'type' => 'title',
- )
- )
- );
-
- // Post Details: Date
- if ( ! empty( $date ) ) {
- $wp_customize->add_setting(
- 'jetpack_content_post_details_date',
- array(
- 'default' => 1,
- 'type' => 'option',
- 'transport' => 'postMessage',
- 'sanitize_callback' => 'jetpack_content_options_sanitize_checkbox',
- )
- );
-
- $wp_customize->add_control(
- 'jetpack_content_post_details_date',
- array(
- 'section' => 'jetpack_content_options',
- 'label' => esc_html__( 'Display date', 'jetpack' ),
- 'type' => 'checkbox',
- )
- );
- }
-
- // Post Details: Categories
- if ( ! empty( $categories ) ) {
- $wp_customize->add_setting(
- 'jetpack_content_post_details_categories',
- array(
- 'default' => 1,
- 'type' => 'option',
- 'transport' => 'postMessage',
- 'sanitize_callback' => 'jetpack_content_options_sanitize_checkbox',
- )
- );
-
- $wp_customize->add_control(
- 'jetpack_content_post_details_categories',
- array(
- 'section' => 'jetpack_content_options',
- 'label' => esc_html__( 'Display categories', 'jetpack' ),
- 'type' => 'checkbox',
- )
- );
- }
-
- // Post Details: Tags
- if ( ! empty( $tags ) ) {
- $wp_customize->add_setting(
- 'jetpack_content_post_details_tags',
- array(
- 'default' => 1,
- 'type' => 'option',
- 'transport' => 'postMessage',
- 'sanitize_callback' => 'jetpack_content_options_sanitize_checkbox',
- )
- );
-
- $wp_customize->add_control(
- 'jetpack_content_post_details_tags',
- array(
- 'section' => 'jetpack_content_options',
- 'label' => esc_html__( 'Display tags', 'jetpack' ),
- 'type' => 'checkbox',
- )
- );
- }
-
- // Post Details: Author
- if ( ! empty( $author ) ) {
- $wp_customize->add_setting(
- 'jetpack_content_post_details_author',
- array(
- 'default' => 1,
- 'type' => 'option',
- 'transport' => 'postMessage',
- 'sanitize_callback' => 'jetpack_content_options_sanitize_checkbox',
- )
- );
-
- $wp_customize->add_control(
- 'jetpack_content_post_details_author',
- array(
- 'section' => 'jetpack_content_options',
- 'label' => esc_html__( 'Display author', 'jetpack' ),
- 'type' => 'checkbox',
- )
- );
- }
-
- // Post Details: Comment link
- if ( ! empty( $comment ) ) {
- $wp_customize->add_setting(
- 'jetpack_content_post_details_comment',
- array(
- 'default' => 1,
- 'type' => 'option',
- 'transport' => 'postMessage',
- 'sanitize_callback' => 'jetpack_content_options_sanitize_checkbox',
- )
- );
-
- $wp_customize->add_control(
- 'jetpack_content_post_details_comment',
- array(
- 'section' => 'jetpack_content_options',
- 'label' => esc_html__( 'Display comment link', 'jetpack' ),
- 'type' => 'checkbox',
- )
- );
- }
- }
-
- // Add Featured Images options.
- if ( true === $fi_archive || true === $fi_post || true === $fi_page || true === $fi_portfolio || true === $fi_fallback ) {
- $wp_customize->add_setting( 'jetpack_content_featured_images_title' );
-
- $wp_customize->add_control(
- new Jetpack_Customize_Control_Title(
- $wp_customize,
- 'jetpack_content_featured_images_title',
- array(
- 'section' => 'jetpack_content_options',
- 'label' => esc_html__( 'Featured Images', 'jetpack' ) . sprintf( '<a href="https://en.support.wordpress.com/featured-images/" class="customize-help-toggle dashicons dashicons-editor-help" title="%1$s" rel="noopener noreferrer" target="_blank"><span class="screen-reader-text">%1$s</span></a>', esc_html__( 'Learn more about Featured Images', 'jetpack' ) ),
- 'type' => 'title',
- 'active_callback' => 'jetpack_post_thumbnail_supports',
- )
- )
- );
-
- // Featured Images: Archive
- if ( true === $fi_archive ) {
- $wp_customize->add_setting(
- 'jetpack_content_featured_images_archive',
- array(
- 'default' => $fi_archive_default,
- 'type' => 'option',
- 'sanitize_callback' => 'jetpack_content_options_sanitize_checkbox',
- )
- );
-
- $wp_customize->add_control(
- 'jetpack_content_featured_images_archive',
- array(
- 'section' => 'jetpack_content_options',
- 'label' => esc_html__( 'Display on blog and archives', 'jetpack' ),
- 'type' => 'checkbox',
- 'active_callback' => 'jetpack_post_thumbnail_supports',
- )
- );
- }
-
- // Featured Images: Post
- if ( true === $fi_post ) {
- $wp_customize->add_setting(
- 'jetpack_content_featured_images_post',
- array(
- 'default' => $fi_post_default,
- 'type' => 'option',
- 'sanitize_callback' => 'jetpack_content_options_sanitize_checkbox',
- )
- );
-
- $wp_customize->add_control(
- 'jetpack_content_featured_images_post',
- array(
- 'section' => 'jetpack_content_options',
- 'label' => esc_html__( 'Display on single posts', 'jetpack' ),
- 'type' => 'checkbox',
- 'active_callback' => 'jetpack_post_thumbnail_supports',
- )
- );
- }
-
- // Featured Images: Page
- if ( true === $fi_page ) {
- $wp_customize->add_setting(
- 'jetpack_content_featured_images_page',
- array(
- 'default' => $fi_page_default,
- 'type' => 'option',
- 'sanitize_callback' => 'jetpack_content_options_sanitize_checkbox',
- )
- );
-
- $wp_customize->add_control(
- 'jetpack_content_featured_images_page',
- array(
- 'section' => 'jetpack_content_options',
- 'label' => esc_html__( 'Display on pages', 'jetpack' ),
- 'type' => 'checkbox',
- 'active_callback' => 'jetpack_post_thumbnail_supports',
- )
- );
- }
-
- // Featured Images: Portfolio
- if ( true === $fi_portfolio && post_type_exists( 'jetpack-portfolio' ) ) {
- $wp_customize->add_setting(
- 'jetpack_content_featured_images_portfolio',
- array(
- 'default' => $fi_portfolio_default,
- 'type' => 'option',
- 'sanitize_callback' => 'jetpack_content_options_sanitize_checkbox',
- )
- );
-
- $wp_customize->add_control(
- 'jetpack_content_featured_images_portfolio',
- array(
- 'section' => 'jetpack_content_options',
- 'label' => esc_html__( 'Display on single projects', 'jetpack' ),
- 'type' => 'checkbox',
- 'active_callback' => 'jetpack_post_thumbnail_supports',
- )
- );
- }
-
- // Featured Images: Fallback
- if ( true === $fi_fallback ) {
- $wp_customize->add_setting(
- 'jetpack_content_featured_images_fallback',
- array(
- 'default' => $fi_fallback_default,
- 'type' => 'option',
- 'sanitize_callback' => 'jetpack_content_options_sanitize_checkbox',
- )
- );
-
- $wp_customize->add_control(
- 'jetpack_content_featured_images_fallback',
- array(
- 'section' => 'jetpack_content_options',
- 'label' => esc_html__( 'Automatically use first image in post', 'jetpack' ),
- 'type' => 'checkbox',
- 'active_callback' => 'jetpack_post_thumbnail_supports',
- )
- );
- }
- }
-}
-add_action( 'customize_register', 'jetpack_content_options_customize_register' );
-
-/**
- * Return whether the theme supports Post Thumbnails.
- */
-function jetpack_post_thumbnail_supports() {
- return ( current_theme_supports( 'post-thumbnails' ) );
-}
-
-/**
- * Sanitize the checkbox.
- *
- * @param int $input.
- * @return boolean|string
- */
-function jetpack_content_options_sanitize_checkbox( $input ) {
- return ( 1 == $input ) ? 1 : '';
-}
-
-/**
- * Sanitize the Display value.
- *
- * @param string $display.
- * @return string.
- */
-function jetpack_content_options_sanitize_blog_display( $display ) {
- if ( ! in_array( $display, array( 'content', 'excerpt', 'mixed' ) ) ) {
- $display = 'content';
- }
- return $display;
-}
-
-/**
- * Binds JS handlers to make Theme Customizer preview reload changes asynchronously.
- */
-function jetpack_content_options_customize_preview_js() {
- $options = get_theme_support( 'jetpack-content-options' );
- $blog_display = ( ! empty( $options[0]['blog-display'] ) ) ? $options[0]['blog-display'] : null;
- $blog_display = preg_grep( '/^(content|excerpt)$/', (array) $blog_display );
- sort( $blog_display );
- $blog_display = implode( ', ', $blog_display );
- $blog_display = ( 'content, excerpt' === $blog_display ) ? 'mixed' : $blog_display;
- $masonry = ( ! empty( $options[0]['masonry'] ) ) ? $options[0]['masonry'] : null;
- $post_details = ( ! empty( $options[0]['post-details'] ) ) ? $options[0]['post-details'] : null;
- $date = ( ! empty( $post_details['date'] ) ) ? $post_details['date'] : null;
- $categories = ( ! empty( $post_details['categories'] ) ) ? $post_details['categories'] : null;
- $tags = ( ! empty( $post_details['tags'] ) ) ? $post_details['tags'] : null;
- $author = ( ! empty( $post_details['author'] ) ) ? $post_details['author'] : null;
- $comment = ( ! empty( $post_details['comment'] ) ) ? $post_details['comment'] : null;
-
- wp_enqueue_script( 'jetpack-content-options-customizer', plugins_url( 'customizer.js', __FILE__ ), array( 'customize-preview' ), '1.0', true );
-
- wp_localize_script(
- 'jetpack-content-options-customizer',
- 'blogDisplay',
- array(
- 'display' => get_option( 'jetpack_content_blog_display', $blog_display ),
- 'masonry' => $masonry,
- )
- );
-
- wp_localize_script(
- 'jetpack-content-options-customizer',
- 'postDetails',
- array(
- 'date' => $date,
- 'categories' => $categories,
- 'tags' => $tags,
- 'author' => $author,
- 'comment' => $comment,
- )
- );
-}
-add_action( 'customize_preview_init', 'jetpack_content_options_customize_preview_js' );
diff --git a/plugins/jetpack/modules/theme-tools/content-options/featured-images-fallback.php b/plugins/jetpack/modules/theme-tools/content-options/featured-images-fallback.php
deleted file mode 100644
index dc8d92d6..00000000
--- a/plugins/jetpack/modules/theme-tools/content-options/featured-images-fallback.php
+++ /dev/null
@@ -1,161 +0,0 @@
-<?php
-/**
- * Get one image from a specified post in the following order:
- * Featured Image then first image from the_content HTML
- * and filter the post_thumbnail_html
- *
- * @param string $html The HTML for the image markup.
- * @param int $post_id The post ID to check.
- * @param int $post_thumbnail_id The ID of the featured image.
- * @param string $size The image size to return, defaults to 'post-thumbnail'.
- * @param string|array $attr Optional. Query string or array of attributes.
- *
- * @return string $html Thumbnail image with markup.
- */
-function jetpack_featured_images_fallback_get_image( $html, $post_id, $post_thumbnail_id, $size, $attr ) {
- $opts = jetpack_featured_images_get_settings();
-
- if ( ! empty( $html ) || (bool) 1 !== (bool) $opts['fallback-option'] ) {
- return trim( $html );
- }
-
- if ( jetpack_featured_images_should_load() ) {
- if (
- ( true === $opts['archive'] && ( is_home() || is_archive() || is_search() ) && ! $opts['archive-option'] )
- || ( true === $opts['post'] && is_single() && ! $opts['post-option'] )
- || ! $opts['fallback-option']
- ) {
- return trim( $html );
- }
- }
-
- if ( class_exists( 'Jetpack_PostImages' ) ) {
- global $_wp_additional_image_sizes;
-
- $args = array(
- 'from_thumbnail' => false,
- 'from_slideshow' => true,
- 'from_gallery' => true,
- 'from_attachment' => false,
- );
-
- $image = Jetpack_PostImages::get_image( $post_id, $args );
-
- if ( ! empty( $image ) ) {
- $image['width'] = '';
- $image['height'] = '';
- $image['crop'] = '';
-
- if ( array_key_exists( $size, $_wp_additional_image_sizes ) ) {
- $image['width'] = $_wp_additional_image_sizes[ $size ]['width'];
- $image['height'] = $_wp_additional_image_sizes[ $size ]['height'];
- $image['crop'] = $_wp_additional_image_sizes[ $size ]['crop'];
- }
-
- $image_src = Jetpack_PostImages::fit_image_url( $image['src'], $image['width'], $image['height'] );
-
- // Use the theme's crop setting rather than forcing to true
- $image_src = add_query_arg( 'crop', $image['crop'], $image_src );
-
- $html = '<img src="' . esc_url( $image_src ) . '" title="' . esc_attr( strip_tags( get_the_title() ) ) . '" class="attachment-' . esc_attr( $size ) . ' wp-post-image" />';
-
- return trim( $html );
- }
- }
-
- return trim( $html );
-}
-add_filter( 'post_thumbnail_html', 'jetpack_featured_images_fallback_get_image', 10, 5 );
-
-/**
- * Get URL of one image from a specified post in the following order:
- * Featured Image then first image from the_content HTML
- *
- * @param int $post_id The post ID to check.
- * @param int $post_thumbnail_id The ID of the featured image.
- * @param string $size The image size to return, defaults to 'post-thumbnail'.
- *
- * @return string|null $image_src The URL of the thumbnail image.
- */
-function jetpack_featured_images_fallback_get_image_src( $post_id, $post_thumbnail_id, $size ) {
- $image_src = wp_get_attachment_image_src( $post_thumbnail_id, $size );
- $image_src = ( ! empty( $image_src[0] ) ) ? $image_src[0] : null;
- $opts = jetpack_featured_images_get_settings();
-
- if ( ! empty( $image_src ) || (bool) 1 !== (bool) $opts['fallback-option'] ) {
- return esc_url( $image_src );
- }
-
- if ( jetpack_featured_images_should_load() ) {
- if ( ( true === $opts['archive'] && ( is_home() || is_archive() || is_search() ) && ! $opts['archive-option'] )
- || ( true === $opts['post'] && is_single() && ! $opts['post-option'] ) ) {
- return esc_url( $image_src );
- }
- }
-
- if ( class_exists( 'Jetpack_PostImages' ) ) {
- global $_wp_additional_image_sizes;
-
- $args = array(
- 'from_thumbnail' => false,
- 'from_slideshow' => true,
- 'from_gallery' => true,
- 'from_attachment' => false,
- );
-
- $image = Jetpack_PostImages::get_image( $post_id, $args );
-
- if ( ! empty( $image ) ) {
- $image['width'] = '';
- $image['height'] = '';
- $image['crop'] = '';
-
- if ( array_key_exists( $size, $_wp_additional_image_sizes ) ) {
- $image['width'] = $_wp_additional_image_sizes[ $size ]['width'];
- $image['height'] = $_wp_additional_image_sizes[ $size ]['height'];
- $image['crop'] = $_wp_additional_image_sizes[ $size ]['crop'];
- }
-
- $image_src = Jetpack_PostImages::fit_image_url( $image['src'], $image['width'], $image['height'] );
-
- // Use the theme's crop setting rather than forcing to true
- $image_src = add_query_arg( 'crop', $image['crop'], $image_src );
-
- return esc_url( $image_src );
- }
- }
-
- return esc_url( $image_src );
-}
-
-/**
- * Check if post has an image attached, including a fallback.
- *
- * @param int $post The post ID to check.
- *
- * @return bool
- */
-function jetpack_has_featured_image( $post = null ) {
- return (bool) get_the_post_thumbnail( $post );
-}
-
-/**
- * Adds custom class to the array of post classes.
- *
- * @param array $classes Classes for the post element.
- * @param array $class Optional. Comma separated list of additional classes.
- * @param array $post_id Unique The post ID to check
- *
- * @return array $classes
- */
-function jetpack_featured_images_post_class( $classes, $class, $post_id ) {
- $post_password_required = post_password_required( $post_id );
- $opts = jetpack_featured_images_get_settings();
-
- if ( jetpack_has_featured_image( $post_id ) && (bool) 1 === (bool) $opts['fallback-option'] && ! is_attachment() && ! $post_password_required && 'post' === get_post_type() ) {
- $classes[] = 'has-post-thumbnail';
- }
-
- return $classes;
-}
-add_filter( 'post_class', 'jetpack_featured_images_post_class', 10, 3 );
diff --git a/plugins/jetpack/modules/theme-tools/content-options/featured-images.php b/plugins/jetpack/modules/theme-tools/content-options/featured-images.php
deleted file mode 100644
index d6855f6c..00000000
--- a/plugins/jetpack/modules/theme-tools/content-options/featured-images.php
+++ /dev/null
@@ -1,84 +0,0 @@
-<?php
-/**
- * The function to prevent for Featured Images to be displayed in a theme.
- */
-function jetpack_featured_images_remove_post_thumbnail( $metadata, $object_id, $meta_key, $single ) {
- $opts = jetpack_featured_images_get_settings();
-
- // Automatically return metadata if it's a PayPal product - we don't want to hide the Featured Image.
- if ( 'jp_pay_product' === get_post_type( $object_id ) ) {
- return $metadata;
- }
-
- // Return false if the archive option or singular option is unticked.
- if (
- ( true === $opts['archive']
- && ( is_home() || is_archive() || is_search() )
- && ! jetpack_is_shop_page()
- && ! $opts['archive-option']
- && ( isset( $meta_key )
- && '_thumbnail_id' === $meta_key )
- && in_the_loop()
- )
- || ( true === $opts['post']
- && is_single()
- && ! jetpack_is_product()
- && ! $opts['post-option']
- && ( isset( $meta_key )
- && '_thumbnail_id' === $meta_key )
- && in_the_loop()
- )
- || ( true === $opts['page']
- && is_singular()
- && is_page()
- && ! $opts['page-option']
- && ( isset( $meta_key )
- && '_thumbnail_id' === $meta_key )
- && in_the_loop()
- )
- || ( true === $opts['portfolio']
- && post_type_exists( 'jetpack-portfolio' )
- && is_singular( 'jetpack-portfolio' )
- && ! $opts['portfolio-option']
- && ( isset( $meta_key )
- && '_thumbnail_id' === $meta_key )
- && in_the_loop()
- )
- ) {
- return false;
- } else {
- return $metadata;
- }
-}
-add_filter( 'get_post_metadata', 'jetpack_featured_images_remove_post_thumbnail', true, 4 );
-
-/**
- * Check if we are in a WooCommerce Product in order to exclude it from the is_single check.
- */
-function jetpack_is_product() {
- return ( function_exists( 'is_product' ) ) ? is_product() : false;
-}
-
-/**
- * Check if we are in a WooCommerce Shop in order to exclude it from the is_archive check.
- */
-function jetpack_is_shop_page() {
- // Check if WooCommerce is active first.
- if ( ! class_exists( 'WooCommerce' ) ) {
- return false;
- }
-
- global $wp_query;
-
- $front_page_id = get_option( 'page_on_front' );
- $current_page_id = $wp_query->get( 'page_id' );
- $is_static_front_page = 'page' === get_option( 'show_on_front' );
-
- if ( $is_static_front_page && $front_page_id === $current_page_id ) {
- $is_shop_page = ( $current_page_id === wc_get_page_id( 'shop' ) ) ? true : false;
- } else {
- $is_shop_page = is_shop();
- }
-
- return $is_shop_page;
-}
diff --git a/plugins/jetpack/modules/theme-tools/content-options/post-details.php b/plugins/jetpack/modules/theme-tools/content-options/post-details.php
deleted file mode 100644
index 7851a5be..00000000
--- a/plugins/jetpack/modules/theme-tools/content-options/post-details.php
+++ /dev/null
@@ -1,150 +0,0 @@
-<?php
-/**
- * The function to include Post Details in a theme's stylesheet.
- */
-function jetpack_post_details_enqueue_scripts() {
- // Make sure we can proceed.
- list( $should_run, $options, $definied, $post_details ) = jetpack_post_details_should_run();
-
- if ( ! $should_run ) {
- return;
- }
-
- list( $date_option, $categories_option, $tags_option, $author_option, $comment_option ) = $options;
- list( $date, $categories, $tags, $author, $comment ) = $definied;
-
- $elements = array();
-
- // If date option is unticked, add it to the list of classes.
- if ( 1 != $date_option && ! empty( $date ) ) {
- $elements[] = $date;
- }
-
- // If categories option is unticked, add it to the list of classes.
- if ( 1 != $categories_option && ! empty( $categories ) ) {
- $elements[] = $categories;
- }
-
- // If tags option is unticked, add it to the list of classes.
- if ( 1 != $tags_option && ! empty( $tags ) ) {
- $elements[] = $tags;
- }
-
- // If author option is unticked, add it to the list of classes.
- if ( 1 != $author_option && ! empty( $author ) ) {
- $elements[] = $author;
- }
-
- // If comment option is unticked, add it to the list of classes.
- if ( 1 != $comment_option && ! empty( $comment ) ) {
- $elements[] = $comment;
- }
-
- // Get the list of classes.
- $elements = implode( ', ', $elements );
-
- // Hide the classes with CSS.
- $css = $elements . ' { clip: rect(1px, 1px, 1px, 1px); height: 1px; position: absolute; overflow: hidden; width: 1px; }';
-
- // Add the CSS to the stylesheet.
- wp_add_inline_style( $post_details['stylesheet'], $css );
-}
-add_action( 'wp_enqueue_scripts', 'jetpack_post_details_enqueue_scripts' );
-
-/**
- * Adds custom classes to the array of body classes.
- */
-function jetpack_post_details_body_classes( $classes ) {
- // Make sure we can proceed.
- list( $should_run, $options, $definied ) = jetpack_post_details_should_run();
-
- if ( ! $should_run ) {
- return $classes;
- }
-
- list( $date_option, $categories_option, $tags_option, $author_option, $comment_option ) = $options;
- list( $date, $categories, $tags, $author, $comment ) = $definied;
-
- // If date option is unticked, add a class of 'date-hidden' to the body.
- if ( 1 != $date_option && ! empty( $date ) ) {
- $classes[] = 'date-hidden';
- }
-
- // If categories option is unticked, add a class of 'categories-hidden' to the body.
- if ( 1 != $categories_option && ! empty( $categories ) ) {
- $classes[] = 'categories-hidden';
- }
-
- // If tags option is unticked, add a class of 'tags-hidden' to the body.
- if ( 1 != $tags_option && ! empty( $tags ) ) {
- $classes[] = 'tags-hidden';
- }
-
- // If author option is unticked, add a class of 'author-hidden' to the body.
- if ( 1 != $author_option && ! empty( $author ) ) {
- $classes[] = 'author-hidden';
- }
-
- // If comment option is unticked, add a class of 'comment-hidden' to the body.
- if ( 1 != $comment_option && ! empty( $comment ) ) {
- $classes[] = 'comment-hidden';
- }
-
- return $classes;
-}
-add_filter( 'body_class', 'jetpack_post_details_body_classes' );
-
-/**
- * Determines if Post Details should run.
- */
-function jetpack_post_details_should_run() {
- // Empty value representing falsy return value.
- $void = array( false, null, null, null );
-
- // If the theme doesn't support 'jetpack-content-options', don't continue.
- if ( ! current_theme_supports( 'jetpack-content-options' ) ) {
- return $void;
- }
-
- $options = get_theme_support( 'jetpack-content-options' );
- $post_details = ( ! empty( $options[0]['post-details'] ) ) ? $options[0]['post-details'] : null;
-
- // If the theme doesn't support 'jetpack-content-options[ 'post-details' ]', don't continue.
- if ( empty( $post_details ) ) {
- return $void;
- }
-
- $date = ( ! empty( $post_details['date'] ) ) ? $post_details['date'] : null;
- $categories = ( ! empty( $post_details['categories'] ) ) ? $post_details['categories'] : null;
- $tags = ( ! empty( $post_details['tags'] ) ) ? $post_details['tags'] : null;
- $author = ( ! empty( $post_details['author'] ) ) ? $post_details['author'] : null;
- $comment = ( ! empty( $post_details['comment'] ) ) ? $post_details['comment'] : null;
-
- // If there is no stylesheet and there are no date, categories, tags, author or comment declared, don't continue.
- if (
- empty( $post_details['stylesheet'] )
- && ( empty( $date )
- || empty( $categories )
- || empty( $tags )
- || empty( $author )
- || empty( $comment ) )
- ) {
- return $void;
- }
-
- $date_option = get_option( 'jetpack_content_post_details_date', 1 );
- $categories_option = get_option( 'jetpack_content_post_details_categories', 1 );
- $tags_option = get_option( 'jetpack_content_post_details_tags', 1 );
- $author_option = get_option( 'jetpack_content_post_details_author', 1 );
- $comment_option = get_option( 'jetpack_content_post_details_comment', 1 );
-
- $options = array( $date_option, $categories_option, $tags_option, $author_option, $comment_option );
- $definied = array( $date, $categories, $tags, $author, $comment );
-
- // If all the options are ticked, don't continue.
- if ( array( 1, 1, 1, 1, 1 ) === $options ) {
- return $void;
- }
-
- return array( true, $options, $definied, $post_details );
-}