WordPress.org

Make WordPress Core

Changeset 24598


Ignore:
Timestamp:
07/09/13 05:22:50 (9 months ago)
Author:
nacin
Message:

Remove wp_parse_post_content(), get_paged_content(), paginate_content() from 3.6, and remove the new $id parameters for get_the_content() and the_content().

The content parsing functions are good abstractions, but are no longer needed by core and are too closely tied to legacy globals, rather than paving a new path.

For get_the_content() and the_content(), this only worsens the function prototype. It muddies theme-specific display (more links, etc) with filtered content. apply_filters( 'the_content', $post->post_content ) is sufficient practice for now.

see #24330, [24301]. see #23625, [23804].

Location:
trunk/wp-includes
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-includes/post-template.php

    r24560 r24598  
    161161 * @param string $more_link_text Optional. Content for when there is more text. 
    162162 * @param bool $strip_teaser Optional. Strip teaser content before the more text. Default is false. 
    163  * @param int $id Optional. A post id. Defaults to the current post when in The Loop, undefined otherwise. 
    164  */ 
    165 function the_content( $more_link_text = null, $strip_teaser = false, $id = 0 ) { 
    166     $post = get_post( $id ); 
    167  
    168     /* 
    169      * Filter: the_content 
    170      * 
    171      * param string Post content as returned by get_the_content() 
    172      * param int The ID of the post to which the content belongs. This was introduced 
    173      *           in 3.6.0 and is not reliably passed by all plugins and themes that 
    174      *           directly apply the_content. As such, it is not considered portable. 
    175      */ 
    176     $content = apply_filters( 'the_content', get_the_content( $more_link_text, $strip_teaser, $post->ID ), $post->ID ); 
    177     echo str_replace( ']]>', ']]>', $content ); 
     163 */ 
     164function the_content( $more_link_text = null, $strip_teaser = false) { 
     165    $content = get_the_content( $more_link_text, $strip_teaser ); 
     166    $content = apply_filters( 'the_content', $content ); 
     167    $content = str_replace( ']]>', ']]>', $content ); 
     168    echo $content; 
    178169} 
    179170 
     
    185176 * @param string $more_link_text Optional. Content for when there is more text. 
    186177 * @param bool $stripteaser Optional. Strip teaser content before the more text. Default is false. 
    187  * @param int $id Optional. A post id. Defaults to the current post when in The Loop, undefined otherwise. 
    188178 * @return string 
    189179 */ 
    190 function get_the_content( $more_link_text = null, $strip_teaser = false, $id = 0 ) { 
    191     global $page, $more, $preview; 
    192  
    193     $post = get_post( $id ); 
    194     // Avoid parsing again if the post is the same one parsed by setup_postdata(). 
    195     // The extract() will set up $pages and $multipage. 
    196     if ( $post->ID != get_post()->ID ) 
    197         extract( wp_parse_post_content( $post, false ) ); 
    198     else 
    199         global $pages, $multipage; 
     180function get_the_content( $more_link_text = null, $strip_teaser = false ) { 
     181    global $page, $more, $preview, $pages, $multipage; 
     182 
     183    $post = get_post(); 
    200184 
    201185    if ( null === $more_link_text ) 
  • trunk/wp-includes/post.php

    r24490 r24598  
    49714971    } 
    49724972} 
    4973  
    4974 /** 
    4975  * Parse post content for pagination 
    4976  * 
    4977  * @since 3.6.0 
    4978  * 
    4979  * @uses paginate_content() 
    4980  * 
    4981  * @param object $post The post object. 
    4982  * @return array An array of values used for paginating the parsed content. 
    4983  */ 
    4984 function wp_parse_post_content( $post ) { 
    4985     $numpages = 1; 
    4986  
    4987     if ( strpos( $post->post_content, '<!--nextpage-->' ) ) { 
    4988         $multipage = 1; 
    4989         $pages = paginate_content( $post->post_content ); 
    4990         $numpages = count( $pages ); 
    4991     } else { 
    4992         $pages = array( $post->post_content ); 
    4993         $multipage = 0; 
    4994     } 
    4995  
    4996     return compact( 'multipage', 'pages', 'numpages' ); 
    4997 } 
  • trunk/wp-includes/query.php

    r24593 r24598  
    36303630    endif; 
    36313631} 
    3632 /** 
    3633  * Split the passed content by <!--nextpage--> 
    3634  * 
    3635  * @since 3.6.0 
    3636  * 
    3637  * @param string $content Content to split. 
    3638  * @return array Paged content. 
    3639  */ 
    3640 function paginate_content( $content ) { 
    3641     $content = str_replace( "\n<!--nextpage-->\n", '<!--nextpage-->', $content ); 
    3642     $content = str_replace( "\n<!--nextpage-->",   '<!--nextpage-->', $content ); 
    3643     $content = str_replace( "<!--nextpage-->\n",   '<!--nextpage-->', $content ); 
    3644     return explode( '<!--nextpage-->', $content ); 
    3645 } 
    3646  
    3647 /** 
    3648  * Return content offset by $page 
    3649  * 
    3650  * @since 3.6.0 
    3651  * 
    3652  * @param string $content 
    3653  * @param int $paged 
    3654  * @return string 
    3655  */ 
    3656 function get_paged_content( $content = '', $paged = 0 ) { 
    3657     global $page; 
    3658     if ( empty( $page ) ) 
    3659         $page = 1; 
    3660  
    3661     if ( empty( $paged ) ) 
    3662         $paged = $page; 
    3663  
    3664     if ( empty( $content ) ) { 
    3665         $post = get_post(); 
    3666         if ( empty( $post ) ) 
    3667             return ''; 
    3668  
    3669         $content = $post->post_content; 
    3670     } 
    3671  
    3672     $pages = paginate_content( $content ); 
    3673     if ( isset( $pages[$paged - 1] ) ) 
    3674         return $pages[$paged - 1]; 
    3675  
    3676     return reset( $pages ); 
    3677 } 
    36783632 
    36793633/** 
     
    36963650    $currentmonth = mysql2date('m', $post->post_date, false); 
    36973651    $numpages = 1; 
     3652    $multipage = 0; 
    36983653    $page = get_query_var('page'); 
    36993654    if ( ! $page ) 
     
    37013656    if ( is_single() || is_page() || is_feed() ) 
    37023657        $more = 1; 
    3703  
    3704     extract( wp_parse_post_content( $post, false ) ); 
    3705  
    3706     if ( $multipage && ( $page > 1 ) ) 
     3658    $content = $post->post_content; 
     3659    if ( strpos( $content, '<!--nextpage-->' ) ) { 
     3660        if ( $page > 1 ) 
    37073661            $more = 1; 
     3662        $content = str_replace( "\n<!--nextpage-->\n", '<!--nextpage-->', $content ); 
     3663        $content = str_replace( "\n<!--nextpage-->", '<!--nextpage-->', $content ); 
     3664        $content = str_replace( "<!--nextpage-->\n", '<!--nextpage-->', $content ); 
     3665        $pages = explode('<!--nextpage-->', $content); 
     3666        $numpages = count($pages); 
     3667        if ( $numpages > 1 ) 
     3668            $multipage = 1; 
     3669    } else { 
     3670        $pages = array( $post->post_content ); 
     3671    } 
    37083672 
    37093673    do_action_ref_array('the_post', array(&$post)); 
Note: See TracChangeset for help on using the changeset viewer.