#45920 closed enhancement (fixed)
Twenty Nineteen: Add fragment ID to paginated links
| Reported by: |
|
Owned by: |
|
|---|---|---|---|
| Milestone: | 6.3 | Priority: | normal |
| Severity: | normal | Version: | 5.0.2 |
| Component: | Bundled Theme | Keywords: | has-patch has-test-info 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)
Change History (16)
@
7 years ago
Patch tested for Plain, Day and name, Month and name, Numeric, Post name and Custom Structure permalink structures.
#3
@
7 years 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.
#4
@
3 years ago
- Milestone changed from Awaiting Review to 6.3
I have tested the patch on WordPress 6.2, theme version 2.5.
I did two tests, one with the page break block and one with a classic block and manually adding
<p><!--nextpage--></p>
Targetting the #content works well for all permalinks.
#5
@
3 years ago
- Keywords has-testing-info added; needs-testing removed
Test Report
Environment
- OS: macOS 12.4
- Web Server: Nginx
- PHP: 7.4.33
- WordPress: 6.3-alpha-55505-src
- Browser: Chrome
- Theme: Twenty-nineteen
Screenshots
Pagination:
Results
- I've tested with block editor with Plain, Day and name, Month and name, Numeric, Post name, and Custom Structure permalink structures. Targeting the #content works well for all permalinks. Pagination is also working as expected
#7
@
2 years ago
I don't think we need unit tests here, as this function would only be used by this specific theme :)
This ticket was mentioned in PR #4712 on WordPress/wordpress-develop by @mukesh27.
2 years ago
#8
Trac ticket: https://core.trac.wordpress.org/ticket/45920
This ticket was mentioned in PR #4712 on WordPress/wordpress-develop by @mukesh27.
2 years ago
#9
Trac ticket: https://core.trac.wordpress.org/ticket/45920
#10
@
2 years ago
@audrasjb i open PR added missing document for the function. Feel free to take a look.
This ticket was mentioned in Slack in #core by mukeshpanchal27. View the logs.
2 years ago
#13
@
2 years ago
- Owner set to audrasjb
- Resolution set to fixed
- Status changed from new to closed
In 56057:
@audrasjb commented on PR #4712:
2 years ago
#14
committed in https://core.trac.wordpress.org/changeset/56057
@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 );