WordPress.org

Make WordPress Core

Ticket #11694: pagination-rel-canonical.3.patch

File pagination-rel-canonical.3.patch, 3.0 KB (added by joostdevalk, 10 months ago)

Patch for rel=canonical on paginated posts

  • wp-includes/post-template.php

    IDEA additional info:
    Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
    <+>UTF-8
     
    719719 * @return string Link. 
    720720 */ 
    721721function _wp_link_page( $i ) { 
    722         global $wp_rewrite; 
    723         $post = get_post(); 
    724  
    725         if ( 1 == $i ) { 
    726                 $url = get_permalink(); 
    727         } else { 
    728                 if ( '' == get_option('permalink_structure') || in_array($post->post_status, array('draft', 'pending')) ) 
    729                         $url = add_query_arg( 'page', $i, get_permalink() ); 
    730                 elseif ( 'page' == get_option('show_on_front') && get_option('page_on_front') == $post->ID ) 
    731                         $url = trailingslashit(get_permalink()) . user_trailingslashit("$wp_rewrite->pagination_base/" . $i, 'single_paged'); 
    732                 else 
    733                         $url = trailingslashit(get_permalink()) . user_trailingslashit($i, 'single_paged'); 
    734         } 
    735  
     722        $url = get_paginated_post_url( get_the_ID(), $i ); 
    736723        return '<a href="' . esc_url( $url ) . '">'; 
    737724} 
    738725 
  • wp-includes/link-template.php

    IDEA additional info:
    Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
    <+>UTF-8
     
    7373 * 
    7474 * @since 1.0.0 
    7575 * 
    76  * @param int $id Optional. Post ID. 
     76 * @param int|object $id Optional. Post ID or post object. 
    7777 * @param bool $leavename Optional, defaults to false. Whether to keep post name or page name. 
    7878 * @return string 
    7979 */ 
     
    18351835} 
    18361836 
    18371837/** 
     1838 * Return URL for post at the required page 
     1839 * 
     1840 * @param int $post_id Post to create link for 
     1841 * @param int $i Page number to create link for 
     1842 * 
     1843 * @return string 
     1844 */ 
     1845function get_paginated_post_url( $post_id, $i ) { 
     1846        global $wp_rewrite; 
     1847        $post = get_post( $post_id ); 
     1848 
     1849        if ( 1 == $i ) { 
     1850                $url = get_permalink( $post ); 
     1851        } else { 
     1852                if ( '' == get_option( 'permalink_structure' ) || in_array( $post->post_status, array( 'draft', 'pending' ) ) ) 
     1853                        $url = add_query_arg( 'page', $i, get_permalink( $post ) ); 
     1854                elseif ( 'page' == get_option( 'show_on_front' ) && get_option( 'page_on_front' ) == $post->ID ) 
     1855                        $url = trailingslashit( get_permalink( $post ) ) . user_trailingslashit( "$wp_rewrite->pagination_base/" . $i, 'single_paged' ); 
     1856                else 
     1857                        $url = trailingslashit( get_permalink( $post ) ) . user_trailingslashit( $i, 'single_paged' ); 
     1858        } 
     1859        return $url; 
     1860} 
     1861 
     1862/** 
    18381863 * Retrieve the Press This bookmarklet link. 
    18391864 * 
    18401865 * Use this in 'a' element 'href' attribute. 
     
    23202345 
    23212346        $link = get_permalink( $id ); 
    23222347 
    2323         if ( $page = get_query_var('cpage') ) 
    2324                 $link = get_comments_pagenum_link( $page ); 
     2348        if ( $page = get_query_var( 'page' ) ) 
     2349                $link = get_paginated_post_url( $id, $page ); 
     2350 
     2351        if ( $cpage = get_query_var('cpage') ) 
     2352                $link = get_comments_pagenum_link( $cpage ); 
    23252353 
    23262354        echo "<link rel='canonical' href='$link' />\n"; 
    23272355}