Changeset 59091
- Timestamp:
- 09/25/2024 07:35:20 PM (3 months ago)
- Location:
- trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/wp-includes/class-wp.php
r56395 r59091 748 748 749 749 if ( is_singular() ) { 750 $post = isset( $wp_query->post ) ? $wp_query->post : null; 751 $next = '<!--nextpage-->'; 750 $post = isset( $wp_query->post ) ? $wp_query->post : null; 751 $next = '<!--nextpage-->'; 752 $page_qv = is_front_page() ? 'paged' : 'page'; 752 753 753 754 // Check for paged content that exceeds the max number of pages. 754 if ( $post && ! empty( $this->query_vars[ 'page'] ) ) {755 if ( $post && ! empty( $this->query_vars[ $page_qv ] ) ) { 755 756 // Check if content is actually intended to be paged. 756 757 if ( str_contains( $post->post_content, $next ) ) { 757 $page = trim( $this->query_vars[ 'page'], '/' );758 $page = trim( $this->query_vars[ $page_qv ], '/' ); 758 759 $content_found = (int) $page <= ( substr_count( $post->post_content, $next ) + 1 ); 759 760 } else { -
trunk/tests/phpunit/tests/canonical/paged.php
r56547 r59091 27 27 $this->assertCanonical( $link . '4/', $link ); 28 28 } 29 30 /** 31 * Ensures canonical redirects are performed for sites with a static front page. 32 * 33 * @ticket 50163 34 */ 35 public function test_redirect_missing_front_page_pagination_canonical() { 36 update_option( 'show_on_front', 'page' ); 37 38 $page_id = self::factory()->post->create( 39 array( 40 'post_title' => 'front-page-1', 41 'post_type' => 'page', 42 'post_content' => "Front Page 1\n<!--nextpage-->\nPage 2", 43 ) 44 ); 45 46 update_option( 'page_on_front', $page_id ); 47 48 $link = parse_url( get_permalink( $page_id ), PHP_URL_PATH ); 49 50 // Valid page numbers should not redirect. 51 $this->assertCanonical( $link, $link, 'The home page is not expected to redirect.' ); 52 $this->assertCanonical( $link . 'page/2/', $link . 'page/2/', 'Page 2 exists and is not expected to redirect.' ); 53 54 // Invalid page numbers should redirect to the front page. 55 $this->assertCanonical( $link . 'page/3/', $link, 'Page 3 does not exist and is expected to redirect to the home page.' ); 56 } 57 58 /** 59 * Ensures that canonical redirects are not performed for sites with a blog listing home page. 60 * 61 * @ticket 50163 62 */ 63 public function test_redirect_missing_front_page_pagination_does_not_affect_posts_canonical() { 64 self::factory()->post->create_many( 3 ); 65 update_option( 'posts_per_page', 2 ); 66 67 // Valid page numbers should not redirect. 68 $this->assertCanonical( '/', '/', 'Page one of the blog archive should not redirect.' ); 69 $this->assertCanonical( '/page/2/', '/page/2/', 'Page 2 of the blog archive exists and is not expected to redirect.' ); 70 71 // Neither should invalid page numbers. 72 $this->assertCanonical( '/page/3/', '/page/3/', 'Page 3 of the blog archive is not populated but is not expected to redirect.' ); 73 } 29 74 }
Note: See TracChangeset
for help on using the changeset viewer.