WordPress.org

Make WordPress Core

Ticket #24009: 24009.diff

File 24009.diff, 5.9 KB (added by kovshenin, 13 months ago)
  • wp-includes/revision.php

     
    6969function _wp_post_revision_meta_keys() { 
    7070        return array( 
    7171                '_wp_format_url', 
    72                 '_wp_format_quote', 
    7372                '_wp_format_quote_source', 
    7473                '_wp_format_image', 
    7574                '_wp_format_gallery', 
  • wp-includes/query.php

     
    36943694                $more = 1; 
    36953695        $split_content = $content = $post->post_content; 
    36963696        $format = get_post_format( $post ); 
    3697         if ( $format && in_array( $format, array( 'image', 'audio', 'video' ) ) ) { 
     3697        if ( $format && in_array( $format, array( 'image', 'audio', 'video', 'quote' ) ) ) { 
    36983698                switch ( $format ) { 
    36993699                case 'image': 
    37003700                        get_the_post_format_image( 'full', $post ); 
     
    37113711                        if ( isset( $post->split_content ) ) 
    37123712                                $split_content = $post->split_content; 
    37133713                        break; 
     3714                case 'quote': 
     3715                        get_the_post_format_quote( $post ); 
     3716                        if ( isset( $post->split_content ) ) 
     3717                                $split_content = $post->split_content; 
     3718                        break; 
    37143719                } 
    37153720        } 
    37163721 
  • wp-includes/post-formats.php

     
    8282 */ 
    8383function get_post_format_meta( $post_id = 0 ) { 
    8484        $values = array( 
    85                 'quote'        => '', 
    8685                'quote_source' => '', 
    8786                'url'          => '', 
    8887                'image'        => '', 
     
    373372                        break; 
    374373 
    375374                case 'quote': 
    376                         if ( ! empty( $meta['quote'] ) && ! stristr( $content, $meta['quote'] ) ) { 
    377                                 $quote = sprintf( '<blockquote>%s</blockquote>', wpautop( $meta['quote'] ) ); 
    378                                 if ( ! empty( $meta['quote_source'] ) ) { 
    379                                         $source = ( empty( $meta['url'] ) ) ? $meta['quote_source'] : sprintf( '<a href="%s">%s</a>', esc_url( $meta['url'] ), $meta['quote_source'] ); 
    380                                         $quote .= sprintf( '<figcaption class="quote-caption">%s</figcaption>', $source ); 
    381                                 } 
    382                                 $format_output .= sprintf( '<figure class="quote">%s</figure>', $quote ); 
    383                         } 
     375                        $quote = get_the_post_format_quote( $post ); 
     376 
     377                        // Replace the existing quote in-place. 
     378                        if ( ! empty( $quote ) ) 
     379                                get_content_quote( $content, true, $quote ); 
     380 
    384381                        break; 
    385382 
    386383                case 'video': 
     
    636633} 
    637634 
    638635/** 
     636 * Get the first <blockquote> from the passed in $content string. 
     637 * If $content does not have a blockquote, assume the whole string 
     638 * is the quote. 
     639 * 
     640 * @since 3.6.0 
     641 * @return string The quote content 
     642 */ 
     643function get_content_quote( &$content, $remove = false, $replace = '' ) { 
     644        if ( empty( $content ) ) 
     645                return ''; 
     646 
     647        $matches = array(); 
     648        if ( ! preg_match( '/<blockquote[^>]*>(.+?)<\/blockquote>/is', $content, $matches ) ) { 
     649                $quote = $content; 
     650                if ( $remove || ! empty( $replace ) ) 
     651                        $content = $replace; 
     652                return $quote; 
     653        } 
     654 
     655        if ( $remove || ! empty( $replace ) ) 
     656                $content = preg_replace( '/<blockquote[^>]*>(.+?)<\/blockquote>/is', addcslashes( $replace, '\\$' ), $content, 1 ); 
     657 
     658        return $matches[1]; 
     659} 
     660 
     661/** 
     662 * Get a quote from the post content and set split_content for future use. 
     663 * 
     664 * @since 3.6.0 
     665 * @uses get_content_quote 
     666 * @return string The quote html. 
     667 */ 
     668function get_the_post_format_quote( &$post = null ) { 
     669        if ( empty( $post ) ) 
     670                $post = get_post(); 
     671 
     672        if ( empty( $post ) ) 
     673                return ''; 
     674 
     675        $content = $post->post_content; 
     676        $quote = get_content_quote( $content, true ); 
     677        $post->split_content = $content; 
     678 
     679        if ( ! empty( $quote ) ) 
     680                $quote = sprintf( '<blockquote>%s</blockquote>', wpautop( $quote ) ); 
     681 
     682        $meta = get_post_format_meta( $post->ID ); 
     683        if ( ! empty( $meta['quote_source'] ) ) { 
     684                $source = ( empty( $meta['url'] ) ) ? $meta['quote_source'] : sprintf( '<a href="%s">%s</a>', esc_url( $meta['url'] ), $meta['quote_source'] ); 
     685                $quote .= sprintf( '<figcaption class="quote-caption">%s</figcaption>', $source ); 
     686        } 
     687 
     688        if ( ! empty( $quote ) ) 
     689                $quote = sprintf( '<figure class="quote">%s</figure>', $quote ); 
     690 
     691        return $quote; 
     692} 
     693 
     694/** 
     695 * Outputs the post format quote. 
     696 * 
     697 * @since 3.6.0 
     698 */ 
     699function the_post_format_quote() { 
     700        echo get_the_post_format_quote(); 
     701} 
     702 
     703/** 
    639704 * Extract a URL from passed content, if possible 
    640705 * Checks for a URL on the first line of the content or the first encountered href attribute. 
    641706 * 
  • wp-admin/edit-form-advanced.php

     
    166166                        'description' => __( 'Use the editor to compose a status update. What&#8217;s new?' ) 
    167167                ), 
    168168                'quote' => array ( 
    169                         'description' => __( 'Copy a quotation into the box. Also add the source and URL if you have them.' ) 
     169                        'description' => __( 'Copy a quotation into the editor. Also add the source and URL if you have them.' ) 
    170170                ), 
    171171                'aside' => array ( 
    172172                        'description' => __( 'An aside is a quick thought or side topic. Use the editor to compose one.' ) 
  • wp-admin/includes/post-formats.php

     
    99        <input type="hidden" name="post_format" id="post_format" value="<?php echo esc_attr( $post_format ); ?>" /> 
    1010 
    1111        <div class="field wp-format-quote"> 
    12                 <label for="wp_format_quote"><?php _e( 'Quote' ); ?></label> 
    13                 <textarea id="wp_format_quote" name="_wp_format_quote" class="widefat"><?php echo esc_textarea( $format_meta['quote'] ); ?></textarea> 
    14         </div> 
    15  
    16         <div class="field wp-format-quote"> 
    1712                <label for="wp_format_quote_source"><?php _e( 'Quote source' ); ?></label> 
    1813                <input type="text" id="wp_format_quote_source" name="_wp_format_quote_source" value="<?php echo esc_attr( $format_meta['quote_source'] ); ?>" class="widefat" /> 
    1914        </div>