Docs: Clarify that meta_query REGEXP values are raw MySQL patterns#12072
Docs: Clarify that meta_query REGEXP values are raw MySQL patterns#12072patrickcoombe wants to merge 1 commit into
Conversation
Document in the WP_Meta_Query DocBlock that when $compare is 'REGEXP', 'NOT REGEXP', or 'RLIKE', the $value is used as a raw MySQL regular expression and must not be wrapped in delimiters such as '/'. Props letraceursnork. Fixes #58180.
|
The following accounts have interacted with this PR and/or linked issues. I will continue to update these lists as activity occurs. You can also manually ask me to refresh this list by adding the 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. |
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. |
Trac ticket: https://core.trac.wordpress.org/ticket/58180
When a
meta_queryclause uses'compare' => 'REGEXP'(or'NOT REGEXP' / 'RLIKE'), thevalueis passed directly to MySQL'sREGEXPoperator. This is not obvious from the DocBlock, and a common mistake is to wrap the pattern in PCRE-style delimiters (e.g./^bar/), which MySQL treats as literal characters.This adds a note to the
$valueparameter in theWP_Meta_QueryDocBlock clarifying that for the REGEXP-family compares the value is used as a raw MySQL regular expression and should not be wrapped in delimiters such as/.Documentation only; no behavioral change.
Props letraceursnork.
Fixes #58180.