Make WordPress Core

Ticket #16973: 16973.4.patch

File 16973.4.patch, 4.8 KB (added by kobenland, 12 years ago)
  • wp-includes/link-template.php

     
    14291429}
    14301430
    14311431/**
     1432 * Retrieve link to a multipage part.
     1433 *
     1434 * @since 3.2.0
     1435 *
     1436 * @param int $page Optional.
     1437 * @return string
     1438 */
     1439function get_multipage_link( $page = 1 ) {
     1440        global $post, $wp_rewrite;
     1441
     1442        if ( 1 == $page ) {
     1443                $url = get_permalink();
     1444        } else {
     1445                if ( '' == get_option('permalink_structure') || in_array( $post->post_status, array( 'draft', 'pending') ) )
     1446                        $url = add_query_arg( 'page', $page, get_permalink() );
     1447                elseif ( 'page' == get_option( 'show_on_front' ) && get_option('page_on_front') == $post->ID )
     1448                        $url = trailingslashit( get_permalink() ) . user_trailingslashit( $wp_rewrite->pagination_base . "/$page", 'single_paged' );
     1449                else
     1450                        $url = trailingslashit( get_permalink() ) . user_trailingslashit( $page, 'single_paged' );
     1451        }
     1452
     1453        return $url;
     1454}
     1455
     1456/**
    14321457 * Retrieve next posts page link.
    14331458 *
    14341459 * Backported from 2.1.3 to 2.0.10.
  • wp-includes/post-template.php

     
    626626 *      is not linked.
    627627 *
    628628 * @since 1.2.0
    629  * @access private
    630629 *
    631630 * @param string|array $args Optional. Overwrite the defaults.
    632631 * @return string Formatted output in HTML.
     
    632631 * @return string Formatted output in HTML.
    633632 */
    634633function wp_link_pages($args = '') {
     634        global $page, $numpages, $multipage, $more, $pagenow;
     635
     636        if ( !$multipage )
     637                return false;
     638
    635639        $defaults = array(
    636640                'before' => '<p>' . __('Pages:'), 'after' => '</p>',
    637641                'link_before' => '', 'link_after' => '',
     
    644648        $r = apply_filters( 'wp_link_pages_args', $r );
    645649        extract( $r, EXTR_SKIP );
    646650
    647         global $page, $numpages, $multipage, $more, $pagenow;
     651        $output = '';
     652
     653        if ( 'number' == $next_or_number ) {
     654                $output .= $before;
     655                for ( $i = 1; $i <= $numpages; $i++ ) {
     656                        $link = $link_before . str_replace( '%', $i, $pagelink ) . $link_after;
    648657
    649         $output = '';
    650         if ( $multipage ) {
    651                 if ( 'number' == $next_or_number ) {
    652                         $output .= $before;
    653                         for ( $i = 1; $i < ($numpages+1); $i = $i + 1 ) {
    654                                 $j = str_replace('%',$i,$pagelink);
    655                                 $output .= ' ';
    656                                 if ( ($i != $page) || ((!$more) && ($page==1)) ) {
    657                                         $output .= _wp_link_page($i);
    658                                 }
    659                                 $output .= $link_before . $j . $link_after;
    660                                 if ( ($i != $page) || ((!$more) && ($page==1)) )
    661                                         $output .= '</a>';
     658                        if ( ( $i != $page ) || ( !$more && 1 == $page ) ) {
     659                                $link = '<a href="' . esc_url( get_multipage_link( $i ) ) . '">' . $link . '</a>';
    662660                        }
    663                         $output .= $after;
    664                 } else {
    665                         if ( $more ) {
    666                                 $output .= $before;
    667                                 $i = $page - 1;
    668                                 if ( $i && $more ) {
    669                                         $output .= _wp_link_page($i);
    670                                         $output .= $link_before. $previouspagelink . $link_after . '</a>';
    671                                 }
    672                                 $i = $page + 1;
    673                                 if ( $i <= $numpages && $more ) {
    674                                         $output .= _wp_link_page($i);
    675                                         $output .= $link_before. $nextpagelink . $link_after . '</a>';
    676                                 }
    677                                 $output .= $after;
    678                         }
     661                        $link = apply_filters( 'wp_link_pages_link', $link, $i );
     662                        $output .= ' ' . $link;
     663                }
     664                $output .= $after;
     665        } elseif ( $more ) {
     666                $output .= $before;
     667                $i = $page - 1;
     668                if ( $i ) {
     669                        $link = '<a href="' . esc_url( get_multipage_link( $i ) ) . '">' .$link_before. $previouspagelink . $link_after . '</a>';
     670                        $output .= apply_filters( 'wp_link_pages_link', $link, $i );
     671                }
     672                $i = $page + 1;
     673                if ( $i <= $numpages ) {
     674                        $link = '<a href="' . esc_url( get_multipage_link( $i ) ) . '">' . $link_before. $nextpagelink . $link_after . '</a>';
     675                        $output .= apply_filters( 'wp_link_pages_link', $link, $i );
    679676                }
     677                $output .= $after;
    680678        }
     679       
     680        $output = apply_filters( 'wp_link_pages', $output, $args );
    681681
    682682        if ( $echo )
    683683                echo $output;
     
    685685        return $output;
    686686}
    687687
    688 /**
    689  * Helper function for wp_link_pages().
    690  *
    691  * @since 3.1.0
    692  * @access private
    693  *
    694  * @param int $i Page number.
    695  * @return string Link.
    696  */
    697 function _wp_link_page( $i ) {
    698         global $post, $wp_rewrite;
    699 
    700         if ( 1 == $i ) {
    701                 $url = get_permalink();
    702         } else {
    703                 if ( '' == get_option('permalink_structure') || in_array($post->post_status, array('draft', 'pending')) )
    704                         $url = add_query_arg( 'page', $i, get_permalink() );
    705                 elseif ( 'page' == get_option('show_on_front') && get_option('page_on_front') == $post->ID )
    706                         $url = trailingslashit(get_permalink()) . user_trailingslashit("$wp_rewrite->pagination_base/" . $i, 'single_paged');
    707                 else
    708                         $url = trailingslashit(get_permalink()) . user_trailingslashit($i, 'single_paged');
    709         }
    710 
    711         return '<a href="' . esc_url( $url ) . '">';
    712 }
    713 
    714688//
    715689// Post-meta: Custom per-post fields.
    716690//