WordPress.org

Make WordPress Core

Opened 2 years ago

Last modified 2 years ago

#17072 new enhancement

Make $wp_query->query read-only

Reported by: scribu Owned by:
Priority: normal Milestone: Future Release
Component: Query Version:
Severity: normal Keywords: dev-feedback has-patch
Cc:

Description

WP_Query has two properties that contain query vars:

$wp_query->query is the initial query.

$wp_query->query_vars is the "working copy", with all possible query vars filled.

I propose we prevent modification of $wp_query->query and keep it as a signature of that particular instance.

Attachments (1)

17072.diff (588 bytes) - added by scribu 2 years ago.

Download all attachments as: .zip

Change History (4)

scribu2 years ago

comment:1 scribu2 years ago

Note that attempts to modify $wp_query->query will just trigger a notice:

Notice: Indirect modification of overloaded property WP_Query::$query has no effect ...

comment:2 westi2 years ago

We already discussed in IRC how we can't really make anything private that wasn't private before because it could break plugin functionality.

While this won't cause a WSOD it could break sites.

comment:3 scribu2 years ago

We're not making it private, just read-only.

You can still call if ( 'bar' == $wp_query->query['foo'] ) etc.

Last edited 2 years ago by scribu (previous) (diff)
Note: See TracTickets for help on using tickets.