Opened 13 years ago
Closed 12 years ago
#18674 closed defect (bug) (fixed)
Filter in adjacent_post_link is broken
Reported by: | Otto42 | Owned by: | |
---|---|---|---|
Milestone: | 3.5 | Priority: | normal |
Severity: | normal | Version: | 3.2.1 |
Component: | Permalinks | Keywords: | has-patch |
Focuses: | Cc: |
Description
A filter in the adjacent_post_link function looks like this:
$adjacent = $previous ? 'previous' : 'next'; echo apply_filters( "{$adjacent}_post_link", $format, $link );
The intent here seems fairly clear, in that the $format and $link variables are arguments to the original function call.
However, the function itself overwrites both of those variables before it ever gets there. The result is that both $format and $link are useless by this point, and so you can't create a different link with the same format as the original call wanted. All you can do is to replace it entirely, without knowing what format was wanted.
So as it stands, these arguments to the filter are more than a little useless.
To fix this, adjacent_post_link shouldn't overwrite its own arguments here, so it can pass the information further on to the filter. Furthermore, the filter itself should be an actual filter, passing the $format and $link as second and third arguments to the function.
Patch upcoming.
I would rather leave this broken which will make it easier to overhaul the code in #17807.