WordPress.org

Make WordPress Core

Ticket #13578: post_template-wp_link_pages.diff

File post_template-wp_link_pages.diff, 7.5 KB (added by brianlayman, 5 years ago)

Code and comment changes to fix the functionality of wp_link_pages

  • post-template.php

     
    536536 * Quicktag one or more times). This tag must be within The Loop. 
    537537 * 
    538538 * The defaults for overwriting are: 
     539 * 'before' - Default is '<p> Pages:' (string). The html or text to prepend to 
     540 *      each bookmarks. 
     541 * 'after' - Default is '</p>' (string). The html or text to append to each 
     542 *      bookmarks. 
     543 * 'link_before' - Default is '' (string). The html or text to prepend to each 
     544 *      Pages link inside the <a> tag. 
     545 * 'link_after' - Default is '' (string). The html or text to append to each 
     546 *      Pages link inside the <a> tag. 
    539547 * 'next_or_number' - Default is 'number' (string). Indicates whether page 
    540548 *      numbers should be used. Valid values are number and next. 
    541549 * 'nextpagelink' - Default is 'Next Page' (string). Text for link to next page. 
    542550 *      of the bookmark. 
     551 * 'separator' - Default is ' ' (string). Text used only between numbers. 
    543552 * 'previouspagelink' - Default is 'Previous Page' (string). Text for link to 
    544553 *      previous page, if available. 
    545554 * 'pagelink' - Default is '%' (String).Format string for page numbers. The % in 
    546555 *      the parameter string will be replaced with the page number, so Page % 
    547556 *      generates "Page 1", "Page 2", etc. Defaults to %, just the page number. 
    548  * 'before' - Default is '<p> Pages:' (string). The html or text to prepend to 
    549  *      each bookmarks. 
    550  * 'after' - Default is '</p>' (string). The html or text to append to each 
    551  *      bookmarks. 
    552  * 'link_before' - Default is '' (string). The html or text to prepend to each 
    553  *      Pages link inside the <a> tag. 
    554  * 'link_after' - Default is '' (string). The html or text to append to each 
    555  *      Pages link inside the <a> tag. 
     557 * 'echo' - Default is 1 (integer). When not 0, this triggers the text to be  
     558 *              echoed as well as returned. 
    556559 * 
    557560 * @since 1.2.0 
    558561 * @access private 
     
    562565 */ 
    563566function wp_link_pages($args = '') { 
    564567        $defaults = array( 
    565                 'before' => '<p>' . __('Pages:'), 'after' => '</p>', 
    566                 'link_before' => '', 'link_after' => '', 
    567                 'next_or_number' => 'number', 'nextpagelink' => __('Next page'), 
    568                 'previouspagelink' => __('Previous page'), 'pagelink' => '%', 
     568                'before' => '<p>' . __('Pages:'),  
     569                'after' => '</p>', 
     570                'link_before' => '',  
     571                'link_after' => '', 
     572                'next_or_number' => 'number',  
     573                'nextpagelink' => __('Next page'), 
     574                'separator' => ' ', 
     575                'previouspagelink' => __('Previous page'),  
     576                'pagelink' => '%', 
    569577                'echo' => 1 
    570578        ); 
    571579 
     
    581589                        $output .= $before; 
    582590                        for ( $i = 1; $i < ($numpages+1); $i = $i + 1 ) { 
    583591                                $j = str_replace('%',$i,$pagelink); 
    584                                 $output .= ' '; 
     592                                if ($output != $before) { 
     593                                        $output .= $separator; 
     594                                } 
    585595                                if ( ($i != $page) || ((!$more) && ($page==1)) ) { 
    586596                                        if ( 1 == $i ) { 
    587                                                 $output .= '<a href="' . get_permalink() . '">'; 
     597                                                $output .= '<a class="pag_nav_num pag_nav_first" href="' . get_permalink() . '">'; 
    588598                                        } else { 
    589599                                                if ( '' == get_option('permalink_structure') || in_array($post->post_status, array('draft', 'pending')) ) 
    590                                                         $output .= '<a href="' . add_query_arg('page', $i, get_permalink()) . '">'; 
     600                                                        $output .= '<a  class="pag_nav_num" href="' . add_query_arg('page', $i, get_permalink()) . '">'; 
    591601                                                elseif ( 'page' == get_option('show_on_front') && get_option('page_on_front') == $post->ID ) 
    592                                                         $output .= '<a href="' . trailingslashit(get_permalink()) . user_trailingslashit('page/' . $i, 'single_paged'). '">'; 
     602                                                        $output .= '<a  class="pag_nav_num" href="' . trailingslashit(get_permalink()) . user_trailingslashit('page/' . $i, 'single_paged'). '">'; 
    593603                                                else 
    594                                                         $output .= '<a href="' . trailingslashit(get_permalink()) . user_trailingslashit($i, 'single_paged') . '">'; 
     604                                                        $output .= '<a  class="pag_nav_num' . ($i >= $numpages ? ' pag_nav_last':'')  . '" href="' . trailingslashit(get_permalink()) . user_trailingslashit($i, 'single_paged') . '">'; 
    595605                                        } 
    596  
     606                                } else { 
     607                                        $output .= '<span class="pag_nav_num pag_nav_current' . ($i <= 1 ? ' pag_nav_first':($i >= $numpages ? ' pag_nav_last':''))  . '">'; 
    597608                                } 
    598609                                $output .= $link_before; 
    599610                                $output .= $j; 
    600611                                $output .= $link_after; 
    601                                 if ( ($i != $page) || ((!$more) && ($page==1)) ) 
     612                                if ( ($i != $page) || ((!$more) && ($page==1)) ) { 
    602613                                        $output .= '</a>'; 
     614                                } else { 
     615                                        $output .= '</span>'; 
     616                                } 
    603617                        } 
    604618                        $output .= $after; 
    605619                } else { 
    606620                        if ( $more ) { 
    607621                                $output .= $before; 
    608622                                $i = $page - 1; 
    609                                 if ( $i && $more ) { 
     623                                if ( ($i > 0) && $more && ($previouspagelink != "")) { 
    610624                                        if ( 1 == $i ) { 
    611                                                 $output .= '<a href="' . get_permalink() . '">'; 
     625                                                $output .= '<a class="pag_nav_prev pag_nav_first" href="' . get_permalink() . '">' . $link_before . $previouspagelink . $link_after . '</a>'; 
    612626                                        } else { 
    613627                                                if ( '' == get_option('permalink_structure') || in_array($post->post_status, array('draft', 'pending')) ) 
    614                                                         $output .= '<a href="' . add_query_arg('page', $i, get_permalink()) . '">'; 
     628                                                        $output .= '<a class="pag_nav_prev" href="' . add_query_arg('page', $i, get_permalink()) . '">' . $link_before . $previouspagelink . $link_after . '</a>'; 
    615629                                                elseif ( 'page' == get_option('show_on_front') && get_option('page_on_front') == $post->ID ) 
    616                                                         $output .= '<a href="' . trailingslashit(get_permalink()) . user_trailingslashit('page/' . $i, 'single_paged'). '">'; 
     630                                                        $output .= '<a class="pag_nav_prev" href="' . trailingslashit(get_permalink()) . user_trailingslashit('page/' . $i, 'single_paged'). '">'; 
    617631                                                else 
    618                                                         $output .= '<a href="' . trailingslashit(get_permalink()) . user_trailingslashit($i, 'single_paged') . '">'; 
     632                                                        $output .= '<a class="pag_nav_prev" href="' . trailingslashit(get_permalink()) . user_trailingslashit($i, 'single_paged') . '">' . $link_before. $previouspagelink . $link_after . '</a>'; 
    619633                                        } 
    620                                         $output .= $link_before. $previouspagelink . $link_after . '</a>'; 
    621634                                } 
    622635                                $i = $page + 1; 
    623                                 if ( $i <= $numpages && $more ) { 
     636                                if ( ($i <= $numpages) && $more && ($nextpagelink != "")) { 
    624637                                        if ( 1 == $i ) { 
    625                                                 $output .= '<a href="' . get_permalink() . '">'; 
     638                                                $output .= '<a class="pag_nav_next first" href="' . get_permalink() . '">' . $link_before . $nextpagelink . $link_after . '</a>'; 
    626639                                        } else { 
    627640                                                if ( '' == get_option('permalink_structure') || in_array($post->post_status, array('draft', 'pending')) ) 
    628                                                         $output .= '<a href="' . add_query_arg('page', $i, get_permalink()) . '">'; 
     641                                                        $output .= '<a class="pag_nav_next" href="' . add_query_arg('page', $i, get_permalink()) . '">' . $link_before . $nextpagelink . $link_after . '</a>'; 
    629642                                                elseif ( 'page' == get_option('show_on_front') && get_option('page_on_front') == $post->ID ) 
    630                                                         $output .= '<a href="' . trailingslashit(get_permalink()) . user_trailingslashit('page/' . $i, 'single_paged'). '">'; 
     643                                                        $output .= '<a class="pag_nav_next"  href="' . trailingslashit(get_permalink()) . user_trailingslashit('page/' . $i, 'single_paged'). '">'; 
    631644                                                else 
    632                                                         $output .= '<a href="' . trailingslashit(get_permalink()) . user_trailingslashit($i, 'single_paged') . '">'; 
     645                                                        $output .= '<a class="pag_nav_next" href="' . trailingslashit(get_permalink()) . user_trailingslashit($i, 'single_paged') . '">' . $link_before. $nextpagelink . $link_after . '</a>'; 
    633646                                        } 
    634                                         $output .= $link_before. $nextpagelink . $link_after . '</a>'; 
    635647                                } 
    636648                                $output .= $after; 
    637649                        }