Repository navigation
Conversation
|
The following accounts have interacted with this PR and/or linked issues. I will continue to update these lists as activity occurs. Core Committers: Use this line as a base for the props when committing in SVN: To understand the WordPress project's expectations around crediting contributors, please review the Contributor Attribution page in the Core Handbook. Props Bot commandsYou can trigger Props Bot actions by commenting on this PR:
|
Test using WordPress PlaygroundThe changes in this pull request can previewed and tested using a WordPress Playground instance. WordPress Playground is an experimental project that creates a full WordPress instance entirely within the browser. Some things to be aware of
For more details about these limitations and more, check out the Limitations page in the WordPress Playground documentation. |
Allows meta queries to keep objects that have no value for a given meta key, e.g. when ordering by a meta field.
Trac ticket: https://core.trac.wordpress.org/ticket/19653
What
exclude_emptymeta query clause argument andmeta_exclude_emptyquery var. Both default totrue, so current behavior is unchanged.false, the meta table is LEFT JOINed with the key condition in theONclause. With a value, the WHERE becomes( id IS NULL OR <value condition> ).ORrelations stay correct.compare_key=/EXISTS/IN. Ignored forcompare => 'NOT EXISTS'.WP_Meta_Queryand in the WP_Query, WP_User_Query, WP_Comment_Query, WP_Term_Query and WP_Site_Query docblocks.Why the old patch was replaced
The 2013 patch only swapped INNER for LEFT JOIN. It kept
meta_key = 'foo'in WHERE, which still filtered out the rows with no meta.Testing
21 new tests in
tests/query/metaQuery.phpandtests/meta/query.php(--group 19653). They cover:meta_value/meta_value_nummeta_query, multiple LEFT-joined clauses with namedorderby, andOR/ nested relationsINkeys and the cases where the flag is ignoredWP_User_QueryNotes
ASC, objects without the meta sort first because MySQL orders NULLs first (see comment Patch for track ticket 42724 #10). Sorting them last could be a follow-up.Use of AI Tools
AI assistance: Yes
Tool(s): Claude (Antropic)
Model(s): Opus 5.5
Used for: Refreshing patch, writing code, generating PR description. Code was reviewed and tested by me.
This Pull Request is for code review only. Please keep all other discussion in the Trac ticket. Do not merge this Pull Request. See GitHub Pull Requests for Code Review in the Core Handbook for more details.