WordPress.org

Make WordPress Core

Ticket #20904: 20904.diff

File 20904.diff, 3.2 KB (added by wonderboymusic, 2 years ago)
  • wp-includes/query.php

    diff --git a/wp-includes/query.php b/wp-includes/query.php
    index 04286aa..87036bc 100644
    a b class WP_Query { 
    28682868                        do_action_ref_array('loop_start', array(&$this)); 
    28692869 
    28702870                $post = $this->next_post(); 
    2871                 setup_postdata($post); 
     2871                $this->setup_postdata( $post ); 
    28722872        } 
    28732873 
    28742874        /** 
    class WP_Query { 
    30613061        } 
    30623062 
    30633063        /** 
     3064         * Set up global post data. 
     3065         * 
     3066         * @param object $post Post data. 
     3067         * @uses do_action_ref_array() Calls 'the_post' 
     3068         * @return bool True when finished. 
     3069         */ 
     3070        function setup_postdata($post) { 
     3071                global $id, $authordata, $currentday, $currentmonth, $page, $pages, $multipage, $more, $numpages; 
     3072 
     3073                $id = (int) $post->ID; 
     3074 
     3075                $authordata = get_userdata( $post->post_author ); 
     3076 
     3077                $currentday = mysql2date( 'd.m.y', $post->post_date, false ); 
     3078                $currentmonth = mysql2date( 'm', $post->post_date, false ); 
     3079                $numpages = 1; 
     3080                $page = $this->get( 'page' ); 
     3081                if ( !$page ) 
     3082                        $page = 1; 
     3083 
     3084                if ( $this->is_single() || $this->is_page() || $this->is_feed() ) 
     3085                        $more = 1; 
     3086                $content = $post->post_content; 
     3087                if ( strpos( $content, '<!--nextpage-->' ) ) { 
     3088                        if ( $page > 1 ) 
     3089                                $more = 1; 
     3090                        $multipage = 1; 
     3091                        $content = str_replace( "\n<!--nextpage-->\n", '<!--nextpage-->', $content ); 
     3092                        $content = str_replace( "\n<!--nextpage-->", '<!--nextpage-->', $content ); 
     3093                        $content = str_replace( "<!--nextpage-->\n", '<!--nextpage-->', $content ); 
     3094                        $pages = explode( '<!--nextpage-->', $content ); 
     3095                        $numpages = count( $pages ); 
     3096                } else { 
     3097                        $pages = array( $post->post_content ); 
     3098                        $multipage = 0; 
     3099                } 
     3100 
     3101                do_action_ref_array( 'the_post', array( &$post ) ); 
     3102 
     3103                return true; 
     3104        } 
     3105 
     3106 
     3107        /** 
    30643108         * Constructor. 
    30653109         * 
    30663110         * Sets up the WordPress query, if parameter is not empty. 
    function wp_old_slug_redirect() { 
    36403684 * @return bool True when finished. 
    36413685 */ 
    36423686function setup_postdata( $post ) { 
    3643         global $id, $authordata, $currentday, $currentmonth, $page, $pages, $multipage, $more, $numpages; 
    3644  
    3645         $id = (int) $post->ID; 
    3646  
    3647         $authordata = get_userdata($post->post_author); 
    3648  
    3649         $currentday = mysql2date('d.m.y', $post->post_date, false); 
    3650         $currentmonth = mysql2date('m', $post->post_date, false); 
    3651         $numpages = 1; 
    3652         $multipage = 0; 
    3653         $page = get_query_var('page'); 
    3654         if ( ! $page ) 
    3655                 $page = 1; 
    3656         if ( is_single() || is_page() || is_feed() ) 
    3657                 $more = 1; 
    3658         $content = $post->post_content; 
    3659         if ( false !== strpos( $content, '<!--nextpage-->' ) ) { 
    3660                 if ( $page > 1 ) 
    3661                         $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                 // Ignore nextpage at the beginning of the content. 
    3666                 if ( 0 === strpos( $content, '<!--nextpage-->' ) ) 
    3667                         $content = substr( $content, 15 ); 
    3668                 $pages = explode('<!--nextpage-->', $content); 
    3669                 $numpages = count($pages); 
    3670                 if ( $numpages > 1 ) 
    3671                         $multipage = 1; 
    3672         } else { 
    3673                 $pages = array( $post->post_content ); 
    3674         } 
     3687        global $wp_query; 
    36753688 
    3676         do_action_ref_array('the_post', array(&$post)); 
     3689        if ( is_a( $wp_query, 'WP_Query' ) ) 
     3690                return $wp_query->setup_postdata( $post );       
    36773691 
    3678         return true; 
     3692        return false; 
    36793693}