Opened 18 months ago
Last modified 14 months ago
#19243 new enhancement
Introduce WP_Query::exists(), or have WP_Query::get() return false for non-existence
| Reported by: |
|
Owned by: | |
|---|---|---|---|
| Priority: | normal | Milestone: | Awaiting Review |
| Component: | Query | Version: | |
| Severity: | normal | Keywords: | |
| Cc: | gabriel.koen@… |
Description
See 15178#comment:8.
A query variable for an an endpoint with no value (/blah/, rather than /feed/rss2/) is set, but it is empty. WP_Query::get() returns an empty string when no QV is set, though, so you need to dig into WP_Query::query_vars directly. This is annoying. It should return false when the QV is not existence.
This should be rather backwards compatible, but WP_Query::exists() may be desired (also, or instead of). In this case, it won't work for core query vars, as _fill_query_vars() clears these, rather than unsets them. We should either change how _fill_query_vars() works, or something.
Change History (2)
comment:1
mintindeed — 18 months ago
- Cc gabriel.koen@… added
comment:2
WraithKenny — 14 months ago
Note: See
TracTickets for help on using
tickets.

http://core.trac.wordpress.org/ticket/16303#comment:1 Westi's code there suggests a workaround: you can hook to 'request' and set the var to true if isset but empty, then when checking get_query_var in template_redirect or wherever, if it's false or empty then it hadn't been set.