get_post_ancestors() now returns false in addition to array()
|Reported by:||dd32||Owned by:||nacin|
|Severity:||normal||Keywords:||has-patch commit needs-unit-tests|
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?
Change History (11)
- Component changed from General to Post Types
- Keywords commit needs-unit-tests added
- Version set to 3.5
- Owner set to nacin
- Resolution set to fixed
- Status changed from new to closed