WordPress.org

Make WordPress Core

Ticket #10558: wp_link_pages-both.diff

File wp_link_pages-both.diff, 4.4 KB (added by simonwheatley, 6 years ago)

Diff to introduce an argument of both into wp_link_pages whereupon WP would use both next/prev links AND the page number links (Edited to introduce spacing rather than have the links hard against one another

  • Users/simon/Projects/StephenFry/site/wordpress/wp-includes/post-template.php

     
    533533 * 
    534534 * The defaults for overwriting are: 
    535535 * 'next_or_number' - Default is 'number' (string). Indicates whether page 
    536  *      numbers should be used. Valid values are number and next. 
     536 *      numbers should be used. Valid values are number, next or both (uses 
     537 *              page numbers and a next prev link). 
    537538 * 'nextpagelink' - Default is 'Next Page' (string). Text for link to next page. 
    538539 *      of the bookmark. 
    539540 * 'previouspagelink' - Default is 'Previous Page' (string). Text for link to 
     
    578579 
    579580        $output = ''; 
    580581        if ( $multipage ) { 
    581                 if ( 'number' == $next_or_number ) { 
     582                if ( $more ) { 
    582583                        $output .= $before; 
    583                         for ( $i = 1; $i < ($numpages+1); $i = $i + 1 ) { 
    584                                 $j = str_replace('%',"$i",$pagelink); 
    585                                 $output .= ' '; 
    586                                 if ( ($i != $page) || ((!$more) && ($page==1)) ) { 
    587                                         if ( 1 == $i ) { 
    588                                                 $output .= '<a href="' . get_permalink() . '">'; 
    589                                         } else { 
    590                                                 if ( '' == get_option('permalink_structure') || in_array($post->post_status, array('draft', 'pending')) ) 
    591                                                         $output .= '<a href="' . get_permalink() . '&amp;page=' . $i . '">'; 
    592                                                 else 
    593                                                         $output .= '<a href="' . trailingslashit(get_permalink()) . user_trailingslashit($i, 'single_paged') . '">'; 
    594                                         } 
    595  
    596                                 } 
    597                                 $output .= $link_before; 
    598                                 $output .= $j; 
    599                                 $output .= $link_after; 
    600                                 if ( ($i != $page) || ((!$more) && ($page==1)) ) 
    601                                         $output .= '</a>'; 
    602                         } 
    603                         $output .= $after; 
    604                 } else { 
    605                         if ( $more ) { 
    606                                 $output .= $before; 
     584                        if ( 'both' == $next_or_number ) { 
    607585                                $i = $page - 1; 
    608586                                if ( $i && $more ) { 
    609587                                        if ( 1 == $i ) { 
     
    612590                                                if ( '' == get_option('permalink_structure') || in_array($post->post_status, array('draft', 'pending')) ) 
    613591                                                        $output .= '<a href="' . get_permalink() . '&amp;page=' . $i . '">' . $link_before. $previouspagelink . $link_after . '</a>'; 
    614592                                                else 
    615                                                         $output .= '<a href="' . trailingslashit(get_permalink()) . user_trailingslashit($i, 'single_paged') . '">' . $link_before. $previouspagelink . $link_after . '</a>'; 
     593                                                        $output .= '<a href="' . trailingslashit(get_permalink()) . user_trailingslashit($i, 'single_paged') . '">' . $link_before. $previouspagelink . $link_after . '</a> '; 
    616594                                        } 
    617595                                } 
     596                        } 
     597                        if ( 'number' == $next_or_number || 'both' == $next_or_number ) { 
     598                                for ( $i = 1; $i < ($numpages+1); $i = $i + 1 ) { 
     599                                        $j = str_replace('%',"$i",$pagelink); 
     600                                        $output .= ' '; 
     601                                        if ( ($i != $page) || ((!$more) && ($page==1)) ) { 
     602                                                if ( 1 == $i ) { 
     603                                                        $output .= '<a href="' . get_permalink() . '">'; 
     604                                                } else { 
     605                                                        if ( '' == get_option('permalink_structure') || in_array($post->post_status, array('draft', 'pending')) ) 
     606                                                                $output .= '<a href="' . get_permalink() . '&amp;page=' . $i . '">'; 
     607                                                        else 
     608                                                                $output .= '<a href="' . trailingslashit(get_permalink()) . user_trailingslashit($i, 'single_paged') . '">'; 
     609                                                } 
     610 
     611                                        } 
     612                                        $output .= $link_before; 
     613                                        $output .= $j; 
     614                                        $output .= $link_after; 
     615                                        if ( ($i != $page) || ((!$more) && ($page==1)) ) 
     616                                                $output .= '</a> '; 
     617                                } 
     618                        } 
     619                        if ( 'both' == $next_or_number ) { 
    618620                                $i = $page + 1; 
    619                                 if ( $i <= $numpages && $more ) { 
     621                                if ( $i <= $numpages ) { 
    620622                                        if ( 1 == $i ) { 
    621623                                                $output .= '<a href="' . get_permalink() . '">' . $link_before. $nextpagelink . $link_after . '</a>'; 
    622624                                        } else { 
    623625                                                if ( '' == get_option('permalink_structure') || in_array($post->post_status, array('draft', 'pending')) ) 
    624626                                                        $output .= '<a href="' . get_permalink() . '&amp;page=' . $i . '">' . $link_before. $nextpagelink . $link_after . '</a>'; 
    625627                                                else 
    626                                                         $output .= '<a href="' . trailingslashit(get_permalink()) . user_trailingslashit($i, 'single_paged') . '">' . $link_before. $nextpagelink . $link_after . '</a>'; 
     628                                                        $output .= '<a href="' . trailingslashit(get_permalink()) . user_trailingslashit($i, 'single_paged') . '">' . $link_before. $nextpagelink . $link_after . '</a> '; 
    627629                                        } 
    628630                                } 
    629                                 $output .= $after; 
    630631                        } 
     632                        $output .= $after; 
    631633                } 
     634                 
    632635        } 
     636         
     637        $output = apply_filters( 'wp_link_pages', $output, $r ); 
    633638 
    634639        if ( $echo ) 
    635640                echo $output;