WordPress.org

Make WordPress Core

Opened 8 days ago

Last modified 8 days ago

#45920 new enhancement

Twenty Nineteen: Add fragment ID to paginated links

Reported by: laurelfulford Owned by:
Milestone: Awaiting Review Priority: normal
Severity: normal Version: 5.0.2
Component: Bundled Theme Keywords: has-patch needs-testing
Focuses: Cc:

Description

Originally reported by @joyously in the Twenty Nineteen GitHub repo:

When the post/page has a featured image and is paginated, it shows the big image on each page. That is fine, but we could use code such as this so that the page links go to #content.

/**
 * Add a fragment identifier (to the content) to paginated links.
 */
function twentynineteen_link_pages_link( $link, $i ) {
	if ( $i > 1 && preg_match( '/href="([^"]*)"/', $link, $matches ) ) {
		if ( false === strpos( $matches[1], '#' ) ) {
			$link = str_replace( $matches[1], $matches[1] . '#content', $link );
		}
	}
	return $link;
}
add_filter( 'wp_link_pages_link', 'twentynineteen_link_pages_link', 10, 2 );

Original ticket: https://github.com/WordPress/twentynineteen/issues/381

Attachments (1)

45920.diff (794 bytes) - added by mukesh27 8 days ago.
Patch tested for Plain, Day and name, Month and name, Numeric, Post name and Custom Structure permalink structures.

Download all attachments as: .zip

Change History (4)

#1 @mukesh27
8 days ago

  • Keywords has-patch added; needs-patch removed

@laurelfulford and @joyously above code is not working for Plain permalink structure. please try below code also attached patch for same in theme.

/**
 * Add a fragment identifier (to the content) to paginated links.
 */
function twentynineteen_link_pages_link( $link, $i ) {
	if ( $i > 1 && preg_match( '/href="([^"]*)"/', $link, $matches ) ) {
		$link = str_replace( $matches[1], $matches[1] . '#content', $link );
	}
	return $link;
}
add_filter( 'wp_link_pages_link', 'twentynineteen_link_pages_link', 10, 2 );

@mukesh27
8 days ago

Patch tested for Plain, Day and name, Month and name, Numeric, Post name and Custom Structure permalink structures.

#2 @mukesh27
8 days ago

  • Keywords needs-testing added

#3 @joyously
8 days ago

I am getting the same result (not working on Plain permalinks), but I don't see why.

Do you know why?

The case that check is for is if there is already some other filter(like a plugin) for the link adding a fragment ID. It shouldn't make it into an invalid link.

Note: See TracTickets for help on using tickets.