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: nacin 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)

  • Cc gabriel.koen@… added

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.

Note: See TracTickets for help on using tickets.