get_page_uri() can produce PHP Warnings when non-WP_Post object instances are passed
|Reported by:||dd32||Owned by:||nacin|
A common PHP Warning being posted on the forums includes the following:
Warning: Invalid argument supplied for foreach() in wp-includes/post.php on line 3588
This is being caused by the lazy-loading of the ancestor field, with non-WP_Post instances being passed in.
Although I haven't tracked down how themes are using it, using the following code in the loop to simulate a WP_Post object being converted to a standard StdClass instance duplicates the issue:
var_dump( get_page_uri( (object)(array)$post ) );
The change to fix this seems like an obvious change to me, so I've not yet dug into the reasonings behind themes triggering it.
I've seen the Warning in the wild in a few places, but an example forum thread: http://wordpress.org/support/topic/warning-invalid-argument-supplied-for-foreach-in-homeftpublic_htmlwp-incl?
Patch attached, milestone set for review purposes.
Change History (11)
- Owner set to nacin
- Resolution set to fixed
- Status changed from new to closed