mirror of
https://github.com/WordPress/WordPress.git
synced 2025-01-03 06:57:35 +01:00
Canonical: Redirect paged requests for non-paginated posts to the post permalink.
This avoids displaying duplicate content of the same post under different URLs and ensures the canonical URL is correct. Previously, requests for invalid page numbers were only redirected to the post permalink if the post was actually paginated using the `<!--nextpage-->` marker. Follow-up to [34492]. Props jeremyfelt, prografika, sachit.tandukar, subrataemfluence, hronak, ekatherine, henry.wright, chesio, dd32, SergeyBiryukov. Fixes #40773. See #45337, #28081, #11694. Built from https://develop.svn.wordpress.org/trunk@47727 git-svn-id: http://core.svn.wordpress.org/trunk@47504 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
parent
8ca76cabfc
commit
eae1462bef
wp-includes
@ -157,8 +157,7 @@ function redirect_canonical( $requested_url = null, $do_redirect = true ) {
|
||||
}
|
||||
}
|
||||
|
||||
if ( get_query_var( 'page' ) && $wp_query->post &&
|
||||
false !== strpos( $wp_query->post->post_content, '<!--nextpage-->' ) ) {
|
||||
if ( get_query_var( 'page' ) && $wp_query->post ) {
|
||||
$redirect['path'] = rtrim( $redirect['path'], (int) get_query_var( 'page' ) . '/' );
|
||||
$redirect['query'] = remove_query_arg( 'page', $redirect['query'] );
|
||||
$redirect_url = get_permalink( $wp_query->post->ID );
|
||||
|
@ -678,9 +678,14 @@ class WP {
|
||||
|
||||
// Check for paged content that exceeds the max number of pages.
|
||||
$next = '<!--nextpage-->';
|
||||
if ( $p && false !== strpos( $p->post_content, $next ) && ! empty( $this->query_vars['page'] ) ) {
|
||||
$page = trim( $this->query_vars['page'], '/' );
|
||||
$success = (int) $page <= ( substr_count( $p->post_content, $next ) + 1 );
|
||||
if ( $p && ! empty( $this->query_vars['page'] ) ) {
|
||||
// Check if content is actually intended to be paged.
|
||||
if ( false !== strpos( $p->post_content, $next ) ) {
|
||||
$page = trim( $this->query_vars['page'], '/' );
|
||||
$success = (int) $page <= ( substr_count( $p->post_content, $next ) + 1 );
|
||||
} else {
|
||||
$success = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -13,7 +13,7 @@
|
||||
*
|
||||
* @global string $wp_version
|
||||
*/
|
||||
$wp_version = '5.5-alpha-47706';
|
||||
$wp_version = '5.5-alpha-47727';
|
||||
|
||||
/**
|
||||
* Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.
|
||||
|
Loading…
Reference in New Issue
Block a user