#53392 closed enhancement (fixed)
add a filter for the arguments of `the_posts_pagination()`
Reported by: | pbiron | Owned by: | davidbaumwald |
---|---|---|---|
Milestone: | 6.1 | Priority: | normal |
Severity: | normal | Version: | |
Component: | General | Keywords: | has-patch commit has-dev-note |
Focuses: | docs | Cc: |
Description (last modified by )
It would be really helpful if there were a hook to filter the arguments passed to the_posts_pagination() (and/or get_the_posts_pagination()).
The most common case I come across where this new filter would be helpful is when creating a child theme, tho there are undoubtedly others. The parent theme has a template that calls the_posts_pagination()
where I like everything about the template except for the arguments it passes to the_posts_pagination()
.
Usually what I do in that case is add a copy of the template to my child theme and change just the arguments passed to the_posts_pagination()
. That's certainly not ideal because of the possibility of the parent theme releasing a new version that changes the template in question and then the child theme needs to have multiple "copies" of the template and load the one that is based on the version of the parent theme active on the site :-(
The other option, I guess (it's so complicated, I've never actually done it), is for the child theme to hook into
paginate_links_output (and maybe navigation_markup_template).
It would be much easier if the child theme could simply filter the the_posts_pagination()
args and let core (and the parent theme) do all the rest.
For example, suppose the parent theme does:
the_posts_pagination(
array(
'prev_text' => parent_theme_get_svg( 'prev' ),
'next_text' => parent_theme_get_svg( 'next' ),
)
);
(For a real world example, see twentynineteen's search.php).
Rather than use the SVG's from the parent theme, the child theme just wants to use plain "Next", "Previous" text so that it can style those links like next/previous buttons it uses in other contexts that have nothing to do with post navigation.
A new filter would allow the child theme to simply do:
add_filter( 'the_posts_pagination_args', 'child_theme_the_posts_pagination_args' );
public function child_theme_the_posts_pagination_args( $args ) {
$args['prev_text'] = __( 'Previous', 'child-theme' );
$args['next_text'] = __( 'Next', 'child-theme' );
return $args;
}
and not have to copy the parent theme's template into the child theme just so that it can change the args passed to the_posts_pagination()
.
Attachments (4)
Change History (22)
#5
@
4 years ago
Ah, I see now. It looks like you missed one. (and the title of the ticket has navigation)
It would be much easier if the child theme could simply filter the
the_posts_navigation()
args and let core
#6
@
4 years ago
- Description modified (diff)
- Summary changed from add a filter for the arguments of `the_posts_navigation()` to add a filter for the arguments of `the_posts_pagination()`
#7
@
4 years ago
Thanx again @joyously :-)
Patch updated to use the correct new filter name and the example in the ticket Description has been updated accordingly.
It might be good to also add new the_posts_navigation
and the_post_navigation
filters, but for now I'm going to leave the scope of this ticket as originally opened (since that's my only immediate need). Have no objection if others think it'd be good to expand it and would be happy to update the patch accordingly.
This ticket was mentioned in Slack in #core by pbiron. View the logs.
2 years ago
#10
@
2 years ago
- Focuses docs added
- Keywords commit added
- Milestone changed from Awaiting Review to 6.1
- Owner set to davidbaumwald
- Status changed from new to reviewing
#11
@
2 years ago
Thanx @davidbaumwald.
Would you like me to refresh the patch, to update the @since
tag in the filter's DocBlock? Or can you do that as part of the commit?
#12
@
2 years ago
@pbiron If you're looking for something to do. Otherwise, I can just change it myself ;)
#13
@
2 years ago
ask an ye shall receive: 53392.2.diff :-)
#14
@
2 years ago
thanx @audrasjb ... user headspace error on my part when creating the revised patch
#15
@
2 years ago
Latest patch (53392.3.diff) looks good to me.
#16
@
2 years ago
- Keywords needs-dev-note added
- Resolution set to fixed
- Status changed from reviewing to closed
Messed up the ticket number in the commit, but this was fixed in changeset https://core.trac.wordpress.org/changeset/54144.
General: Add a new filter for the_posts_pagination_args. Props pbiron, joyously, audrasjb, robinwpdeveloper. Fixes 53392.
Also flagging this for a small call-out on the Misc Dev Note.
#18
@
2 years ago
- Keywords has-dev-note added; needs-dev-note removed
The DevNote for this is included in Miscellaneous Core changes for WordPress 6.1
Did you intend that your example mixed
the_posts_navigation
withthe_posts_pagination
?They call the same underlying functions, but are very different.