#22882 closed defect (bug) (fixed)
get_post_ancestors() now returns false in addition to array()
Reported by: | dd32 | Owned by: | nacin |
---|---|---|---|
Milestone: | 3.5.1 | Priority: | normal |
Severity: | normal | Version: | 3.5 |
Component: | Posts, Post Types | Keywords: | has-patch commit needs-unit-tests |
Focuses: | Cc: |
Description
Under 3.4, get_post_ancestors() would always return an array, in error conditions, it would return an empty array.
Under 3.5, get_post_ancestors() returns an array of ancestors, as in 3.4, except, in the case where the $post passed in is NULL/FALSE/0/empty, then it now returns false.
This results in warning such as this: Warning: Invalid argument supplied for foreach()
when the result of get_post_ancestors() was used directly in a loop,
Admitably, it's bad code which triggers this, calling get_post_ancestors() with the global $post
object before it's set up in this case, but it's still a chance in behaviour which I felt needs documenting on trac. This is either a instant 'We should just return an array()' or 'wontfix: Plugins are doing it wrong and should fix their code' ticket.
This was found by debugging http://wordpress.org/support/topic/does-wordpress-35-still-support-is_tree?
Attachments (1)
Change History (11)
#3
@
12 years ago
- Keywords has-patch reporter-feedback added
I've made a simple patch that returns an array when the variable $post isn't available.
#5
@
12 years ago
- Component changed from General to Post Types
- Keywords commit needs-unit-tests added
- Version set to 3.5
#7
@
12 years ago
In 1177/tests:
Milestone set purely for "It's a 3.5.1 thing, or we don't do it at all"