WordPress.org

Make WordPress Core

Ticket #16973: 16973.3.diff

File 16973.3.diff, 4.5 KB (added by scribu, 7 years ago)

more cleanup

  • wp-includes/post-template.php

     
    612612 *      is not linked.
    613613 *
    614614 * @since 1.2.0
    615  * @access private
    616615 *
    617616 * @param string|array $args Optional. Overwrite the defaults.
    618617 * @return string Formatted output in HTML.
    619618 */
    620619function wp_link_pages($args = '') {
     620        global $page, $numpages, $multipage, $more, $pagenow;
     621
     622        if ( !$multipage )
     623                return false;
     624
    621625        $defaults = array(
    622626                'before' => '<p>' . __('Pages:'), 'after' => '</p>',
    623627                'link_before' => '', 'link_after' => '',
     
    630634        $r = apply_filters( 'wp_link_pages_args', $r );
    631635        extract( $r, EXTR_SKIP );
    632636
    633         global $page, $numpages, $multipage, $more, $pagenow;
    634 
    635637        $output = '';
    636         if ( $multipage ) {
    637                 if ( 'number' == $next_or_number ) {
    638                         $output .= $before;
    639                         for ( $i = 1; $i < ($numpages+1); $i = $i + 1 ) {
    640                                 $j = str_replace('%',$i,$pagelink);
    641                                 $output .= ' ';
    642                                 if ( ($i != $page) || ((!$more) && ($page==1)) ) {
    643                                         $output .= _wp_link_page($i);
    644                                 }
    645                                 $output .= $link_before . $j . $link_after;
    646                                 if ( ($i != $page) || ((!$more) && ($page==1)) )
    647                                         $output .= '</a>';
     638
     639        if ( 'number' == $next_or_number ) {
     640                $output .= $before;
     641                for ( $i = 1; $i <= $numpages; $i++ ) {
     642                        $link = $link_before . str_replace( '%', $i, $pagelink ) . $link_after;
     643
     644                        if ( ( $i != $page ) || ( !$more && 1 == $page ) ) {
     645                                $link = '<a href="' . esc_url( get_multipage_link( $i ) ) . '">' . $link . '</a>';
    648646                        }
    649                         $output .= $after;
    650                 } else {
    651                         if ( $more ) {
    652                                 $output .= $before;
    653                                 $i = $page - 1;
    654                                 if ( $i && $more ) {
    655                                         $output .= _wp_link_page($i);
    656                                         $output .= $link_before. $previouspagelink . $link_after . '</a>';
    657                                 }
    658                                 $i = $page + 1;
    659                                 if ( $i <= $numpages && $more ) {
    660                                         $output .= _wp_link_page($i);
    661                                         $output .= $link_before. $nextpagelink . $link_after . '</a>';
    662                                 }
    663                                 $output .= $after;
    664                         }
     647
     648                        $output .= ' ' . $link;
    665649                }
     650                $output .= $after;
     651        } elseif ( $more ) {
     652                $output .= $before;
     653                $i = $page - 1;
     654                if ( $i ) {
     655                        $output .= '<a href="' . esc_url( get_multipage_link( $i ) ) . '">';
     656                        $output .= $link_before. $previouspagelink . $link_after . '</a>';
     657                }
     658                $i = $page + 1;
     659                if ( $i <= $numpages ) {
     660                        $output .= '<a href="' . esc_url( get_multipage_link( $i ) ) . '">';
     661                        $output .= $link_before. $nextpagelink . $link_after . '</a>';
     662                }
     663                $output .= $after;
    666664        }
    667665
    668666        if ( $echo )
     
    671669        return $output;
    672670}
    673671
    674 /**
    675  * Helper function for wp_link_pages().
    676  *
    677  * @since 3.1.0
    678  * @access private
    679  *
    680  * @param int $i Page number.
    681  * @return string Link.
    682  */
    683 function _wp_link_page( $i ) {
    684         global $post, $wp_rewrite;
    685 
    686         if ( 1 == $i ) {
    687                 $url = get_permalink();
    688         } else {
    689                 if ( '' == get_option('permalink_structure') || in_array($post->post_status, array('draft', 'pending')) )
    690                         $url = add_query_arg( 'page', $i, get_permalink() );
    691                 elseif ( 'page' == get_option('show_on_front') && get_option('page_on_front') == $post->ID )
    692                         $url = trailingslashit(get_permalink()) . user_trailingslashit("$wp_rewrite->pagination_base/" . $i, 'single_paged');
    693                 else
    694                         $url = trailingslashit(get_permalink()) . user_trailingslashit($i, 'single_paged');
    695         }
    696 
    697         return '<a href="' . esc_url( $url ) . '">';
    698 }
    699 
    700672//
    701673// Post-meta: Custom per-post fields.
    702674//
  • wp-includes/link-template.php

     
    15321532}
    15331533
    15341534/**
     1535 * Retrieve link to a multipage part.
     1536 *
     1537 * @since 3.2.0
     1538 *
     1539 * @param int $page Optional.
     1540 * @return string
     1541 */
     1542function get_multipage_link( $page = 1 ) {
     1543        global $post, $wp_rewrite;
     1544
     1545        if ( 1 == $page ) {
     1546                $url = get_permalink();
     1547        } else {
     1548                if ( '' == get_option('permalink_structure') || in_array( $post->post_status, array( 'draft', 'pending') ) )
     1549                        $url = add_query_arg( 'page', $page, get_permalink() );
     1550                elseif ( 'page' == get_option( 'show_on_front' ) && get_option('page_on_front') == $post->ID )
     1551                        $url = trailingslashit( get_permalink() ) . user_trailingslashit( $wp_rewrite->pagination_base . "/$page", 'single_paged' );
     1552                else
     1553                        $url = trailingslashit( get_permalink() ) . user_trailingslashit( $page, 'single_paged' );
     1554        }
     1555
     1556        return $url;
     1557}
     1558
     1559/**
    15351560 * Retrieve next posts pages link.
    15361561 *
    15371562 * Backported from 2.1.3 to 2.0.10.