WordPress.org

Make WordPress Core

Ticket #148: 148.diff

File 148.diff, 6.1 KB (added by mdawaffe, 9 years ago)

?page=0 yields all content concatenated

  • wp-includes/post-template.php

     
    5050        return apply_filters('get_the_guid', $post->guid); 
    5151} 
    5252 
    53 function the_content($more_link_text = '(more...)', $stripteaser = 0, $more_file = '') { 
    54         $content = get_the_content($more_link_text, $stripteaser, $more_file); 
    55         $content = apply_filters('the_content', $content); 
     53function the_content( $more_link_text = '(more...)', $stripteaser = 0 ) { 
     54        $content = get_the_content( $more_link_text, $stripteaser ); 
     55        $content = apply_filters( 'the_content', $content ); 
    5656        $content = str_replace(']]>', ']]>', $content); 
    5757        echo $content; 
    5858} 
    5959 
    60  
    61 function get_the_content($more_link_text = '(more...)', $stripteaser = 0, $more_file = '') { 
     60function get_the_content( $more_link_text = '(more...)', $stripteaser = 0 ) { 
    6261        global $id, $post, $more, $single, $withcomments, $page, $pages, $multipage, $numpages; 
    6362        global $preview; 
    6463        global $pagenow; 
     
    7170                } 
    7271        } 
    7372 
    74         if ( $more_file != '' ) 
    75                 $file = $more_file; 
    76         else 
    77                 $file = $pagenow; //$_SERVER['PHP_SELF']; 
    78  
    7973        if ( $page > count($pages) ) // if the requested page doesn't exist 
    8074                $page = count($pages); // give them the highest numbered page that DOES exist 
    8175 
    82         $content = $pages[$page-1]; 
     76        $content = $pages[$page ? $page - 1 : 0]; 
    8377        if ( preg_match('/<!--more(.+?)?-->/', $content, $matches) ) { 
    8478                $content = explode($matches[0], $content, 2); 
    8579                if ( !empty($matches[1]) ) 
     
    135129        if ( !isset($r['next_or_number']) ) 
    136130                $r['next_or_number'] = 'number'; 
    137131        if ( !isset($r['nextpagelink']) ) 
    138                 $r['nextpagelink'] = 'Next page'; 
     132                $r['nextpagelink'] = __('Next page'); 
    139133        if ( !isset($r['previouspagelink']) ) 
    140                 $r['previouspagelink'] = 'Previous page'; 
     134                $r['previouspagelink'] = __('Previous page'); 
    141135        if ( !isset($r['pagelink']) ) 
    142136                $r['pagelink'] = '%'; 
    143137        if ( !isset($r['more_file']) ) 
    144138                $r['more_file'] = ''; 
     139        if ( !isset($r['all_page_link']) ) 
     140                $r['all_page_link'] = ''; 
    145141 
    146         link_pages($r['before'], $r['after'], $r['next_or_number'], $r['nextpagelink'], $r['previouspagelink'], $r['pagelink'], $r['more_file']); 
     142        link_pages($r['before'], $r['after'], $r['next_or_number'], $r['nextpagelink'], $r['previouspagelink'], $r['pagelink'], $r['more_file'], $r['all_page_link']); 
    147143} 
    148144 
    149145 
    150 function link_pages($before='<br />', $after='<br />', $next_or_number='number', $nextpagelink='next page', $previouspagelink='previous page', $pagelink='%', $more_file='') { 
     146function link_pages($before='<br />', $after='<br />', $next_or_number='number', $nextpagelink='next page', $previouspagelink='previous page', $pagelink='%', $more_file='', $all_page_link='') { 
    151147        global $id, $page, $numpages, $multipage, $more, $pagenow; 
    152         if ( $more_file != '' ) 
    153                 $file = $more_file; 
    154         else 
    155                 $file = $pagenow; 
    156148        if ( $multipage ) { 
    157149                if ( 'number' == $next_or_number ) { 
    158150                        echo $before; 
    159151                        for ( $i = 1; $i < ($numpages+1); $i = $i + 1 ) { 
    160152                                $j = str_replace('%',"$i",$pagelink); 
    161153                                echo ' '; 
    162                                 if ( ($i != $page) || ((!$more) && ($page==1)) ) { 
     154                                if ( $i != $page || ( !$more && 1 == $page ) ) { 
    163155                                        if ( '' == get_settings('permalink_structure') ) 
    164156                                                echo '<a href="' . get_permalink() . '&amp;page=' . $i . '">'; 
    165157                                        else 
    166158                                                echo '<a href="' . trailingslashit( get_permalink() ) . $i . '/">'; 
    167159                                } 
    168160                                echo $j; 
    169                                 if ( ($i != $page) || ((!$more) && ($page==1)) ) 
     161                                if ( $i != $page || ( !$more && 1 == $page ) ) 
    170162                                        echo '</a>'; 
    171163                        } 
    172                         echo $after; 
    173                 } else { 
    174                         if ( $more ) { 
    175                                 echo $before; 
    176                                 $i = $page - 1; 
    177                                 if ( $i && $more ) { 
     164                        if ( '' != $all_page_link ) { 
     165                                echo ' '; 
     166                                if ( 0 != $page ) { 
    178167                                        if ( '' == get_settings('permalink_structure') ) 
    179                                                 echo '<a href="' . get_permalink() . '&amp;page=' . $i . '">'.$previouspagelink.'</a>'; 
     168                                                echo '<a href="' . get_permalink() . '&amp;page=' . 0 . '">'; 
    180169                                        else 
    181                                                 echo '<a href="' . get_permalink() . $i . '/">'.$previouspagelink.'</a>'; 
     170                                                echo '<a href="' . trailingslashit( get_permalink() ) . 0 . '/">'; 
    182171                                } 
    183                                 $i = $page + 1; 
    184                                 if ( $i <= $numpages && $more ) { 
     172                                echo $all_page_link; 
     173                                if ( 0 != $page ) 
     174                                        echo '</a>'; 
     175                        } 
     176                        echo $after; 
     177                } else if ( $more ) { 
     178                        echo $before; 
     179                        $i = $page - 1; 
     180                        if ( $i > 0 ) { 
     181                                if ( '' == get_settings('permalink_structure') ) 
     182                                        echo '<a href="' . get_permalink() . '&amp;page=' . $i . '">'.$previouspagelink.'</a>'; 
     183                                else 
     184                                        echo '<a href="' . get_permalink() . $i . '/">'.$previouspagelink.'</a>'; 
     185                        } 
     186                        $i = $page + 1; 
     187                        if ( $i <= $numpages ) { 
     188                                if ( '' == get_settings('permalink_structure') ) 
     189                                        echo '<a href="'.get_permalink() . '&amp;page=' . $i . '">'.$nextpagelink.'</a>'; 
     190                                else 
     191                                        echo '<a href="'.get_permalink().$i.'/">'.$nextpagelink.'</a>'; 
     192                        } 
     193                        if ( '' != $all_page_link ) { 
     194                                echo ' '; 
     195                                if ( 0 != $page ) { 
    185196                                        if ( '' == get_settings('permalink_structure') ) 
    186                                                 echo '<a href="'.get_permalink() . '&amp;page=' . $i . '">'.$nextpagelink.'</a>'; 
     197                                                echo '<a href="' . get_permalink() . '&amp;page=' . 0 . '">'; 
    187198                                        else 
    188                                                 echo '<a href="'.get_permalink().$i.'/">'.$nextpagelink.'</a>'; 
     199                                                echo '<a href="' . trailingslashit( get_permalink() ) . 0 . '/">'; 
    189200                                } 
    190                                 echo $after; 
     201                                echo $all_page_link; 
     202                                if ( 0 != $page ) 
     203                                        echo '</a>'; 
    191204                        } 
     205                        echo $after; 
    192206                } 
    193207        } 
    194208} 
  • wp-includes/query.php

     
    10981098        $currentmonth = mysql2date('m', $post->post_date); 
    10991099        $numpages = 1; 
    11001100        $page = get_query_var('page'); 
    1101         if ( !$page ) 
     1101        if ( !$page && 0 !== $page ) 
    11021102                $page = 1; 
    11031103        if ( is_single() || is_page() ) 
    11041104                $more = 1; 
     
    11121112                $content = str_replace("<!--nextpage-->\n", '<!--nextpage-->', $content); 
    11131113                $pages = explode('<!--nextpage-->', $content); 
    11141114                $numpages = count($pages); 
     1115                if ( !$page ) 
     1116                        $pages = array(join('', $pages)); 
    11151117        } else { 
    11161118                $pages[0] = $post->post_content; 
    11171119                $multipage = 0;