#22882 closed defect (bug) (fixed)
get_post_ancestors() now returns false in addition to array()
| Reported by: | dd32 | Owned by: | nacin |
|---|---|---|---|
| Priority: | normal | Milestone: | 3.5.1 |
| Component: | Posts, Post Types | Version: | 3.5 |
| Severity: | normal | Keywords: | has-patch commit needs-unit-tests |
| Cc: | Focuses: |
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?
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)
Milestone set purely for "It's a 3.5.1 thing, or we don't do it at all"