Opened 4 months ago
Closed 3 months ago
#23708 closed defect (bug) (fixed)
get_post_ancestors() no longer works inside loop
| Reported by: |
|
Owned by: |
|
|---|---|---|---|
| Priority: | normal | Milestone: | 3.5.2 |
| Component: | Post Types | Version: | 3.5 |
| Severity: | normal | Keywords: | has-patch commit |
| Cc: |
Description
When upgrading from 3.3.1 to 3.5.1 we found that get_post_ancestors() no longer works inside the loop like it is suppose to.
This issue stems from the addition line to the beginning of the function (lines 684-685 of /wp-includes/post.php)
if ( ! $post ) return array();
I believe this to be a bug, I couldn't find anywhere that this functionality change was desired and breaks anything that relied on this. There was a recent change in Ticket #22882 but this was for a different issue related to this code. If this was an intentional change please tell me where this was that referenced so I better understand where to look in the future.
The fix is just removing these 2 lines.
Change History (6)
comment:1
SergeyBiryukov
— 4 months ago
- Component changed from General to Post Types
- Keywords reporter-feedback added
comment:2
nacin
— 3 months ago
- Milestone changed from Awaiting Review to 3.5.2
- Version changed from 3.5.1 to 3.5
This is legitimate.
get_post_ancestors() used to call get_post() immediately, which would convert null/0 etc to the current $post global. Now, it bails.
comment:3
nacin
— 3 months ago
In 1240/tests:
Could you provide a piece of code to reproduce the issue?