Opened 11 months ago
Last modified 4 weeks ago
#21394 accepted defect (bug)
query.php: get_queried_object() result cannot be assumed to be non-NULL — at Version 2
| Reported by: |
|
Owned by: | |
|---|---|---|---|
| Priority: | normal | Milestone: | Future Release |
| Component: | Warnings/Notices | Version: | 3.3.2 |
| Severity: | normal | Keywords: | has-patch |
| Cc: | leho@… |
Description (last modified by SergeyBiryukov)
I'm dealing with a WPMUdev plugin called MarketPress. Its /store/products/ page is a special CPT catalog thing that seems to have wp_title() issues, so I dug into it.
Turns out that:
is_front_page() -> is_page() -> $page_obj = $this->get_queried_object() -> $page_obj == NULL
But is_page() (and other is_...()) go harrassing $page_obj assuming there's always something useful there. This creates a flood of "non-object access" notices.
I would expect something like this to make sense in these is_...() functions:
if (!is_null($page_obj)) return false;
Since WP_Query::get_queried_object() first sets its result as null and returning a value is actually conditional, I don't see a way around these checks. Enlighten me please if I'm wrong.
I've looked at #19035, #18614, #17662. All of them are situations where there's at least something there in $page_obj. None of them seem to discuss or patch NULL values.
I discovered this on 3.3.2, but todays trunk trunk/wp-includes/query.php@21248#L3340 has the same code.
Change History (3)
comment:2
SergeyBiryukov
— 10 months ago
- Description modified (diff)
Bleh. Ignore the "patch" above.