Commit Graph

34 Commits

Author SHA1 Message Date
Scott Taylor
64f773e4da In WP_Meta_Query->get_sql_for_clause(), the empty initialization of $where is dead code and can be removed.
See #30224.


git-svn-id: https://develop.svn.wordpress.org/trunk@30163 602fd350-edb4-49c9-b593-d223f7449a82
2014-11-01 22:02:48 +00:00
Drew Jaynes (DrewAPicture)
43b3515501 Relocate hook docs so they directly precede the hook lines moved into foreach statements in [30140].
It's necessary for hook docs to directly precede hook lines so the parser can correctly match them up. This change relocates hook docs for `update_{$meta_type}_meta`, `update_postmeta`, `updated_{$meta_type}_meta`, and `updated_postmeta`.

Fixes #11683.


git-svn-id: https://develop.svn.wordpress.org/trunk@30149 602fd350-edb4-49c9-b593-d223f7449a82
2014-11-01 04:17:28 +00:00
Boone Gorges
8dbaaf9927 Pass all updated meta IDs to filters in update_metadata().
Props wonderboymusic.
Fixes #11683.

git-svn-id: https://develop.svn.wordpress.org/trunk@30140 602fd350-edb4-49c9-b593-d223f7449a82
2014-11-01 02:38:19 +00:00
Drew Jaynes (DrewAPicture)
7cd15026bd Correct references of @uses $wpdb in core documentation to use @global.
See #30191, [30105].
Fixes #30217.


git-svn-id: https://develop.svn.wordpress.org/trunk@30122 602fd350-edb4-49c9-b593-d223f7449a82
2014-10-31 17:55:39 +00:00
Boone Gorges
9a84da90c3 Unserialize get_metadata() results when 'key' is omitted.
Props mattkeys, nacin.
Fixes #15030.

git-svn-id: https://develop.svn.wordpress.org/trunk@30115 602fd350-edb4-49c9-b593-d223f7449a82
2014-10-30 10:24:22 +00:00
Drew Jaynes (DrewAPicture)
3cc10d77a0 Remove redundant and erroneous @uses tag from most core inline documentation.
Per our inline documentation standards, no further use of the `@uses` tag is recommended as used and used-by relationships can be derived through other means. This removes most uses of the tag in core documentation, with remaining tags to be converted to `@global` or `@see` as they apply.

Fixes #30191.


git-svn-id: https://develop.svn.wordpress.org/trunk@30105 602fd350-edb4-49c9-b593-d223f7449a82
2014-10-30 01:04:55 +00:00
Boone Gorges
91733ae919 Make orderby=meta_value compatible with meta_query when relation=OR.
Passing orderby=meta_value and meta_key=foo to WP_Query should require that
each matched post have a meta value with the key 'foo'. To make this
requirement compatible with meta_query params that have the relation OR, we
nest the meta_query param, and join it using AND to a meta_query clause
generated from the meta_key/meta_compare/meta_type query vars.

Fixes #25538.

git-svn-id: https://develop.svn.wordpress.org/trunk@29964 602fd350-edb4-49c9-b593-d223f7449a82
2014-10-19 18:53:55 +00:00
Boone Gorges
17183e4e71 Remove redundant table alias check in WP_Meta_Query.
Also adds documentation for 'meta_query_find_compatible_table_alias' filter.

See #24093.

git-svn-id: https://develop.svn.wordpress.org/trunk@29953 602fd350-edb4-49c9-b593-d223f7449a82
2014-10-18 02:21:33 +00:00
Boone Gorges
4c544151b2 Bail from cleaning meta query clause when it's not an array.
Later isset() checks on string values were causing notices on PHP < 5.4.

Props jorbin.
See #29642.

git-svn-id: https://develop.svn.wordpress.org/trunk@29941 602fd350-edb4-49c9-b593-d223f7449a82
2014-10-17 20:24:57 +00:00
Boone Gorges
1708a580fd Overhaul SQL generating logic in WP_Meta_Query to avoid unnecessary table joins.
The logic used to generate clause SQL in `WP_Meta_Query` is somewhat arcane,
stemming mostly from an ongoing effort to eliminate costly table joins when
they are not necessary. By systematizing the process of looking for shareable
joins - as was done in `WP_Tax_Query` [29902] - it becomes possible to simplify
the construction of SQL queries in `get_sql_for_clause()`. Moreover, the
simplified logic is actually considerably better at identifying shareable
joins, such that certain uses of `WP_Meta_Query` will see joins reduced by 50%
or more.

Includes integration tests for a representative cross-section of the query
clause combinations that result in shared table aliases.

Props boonebgorges, sc0ttkclark.
See #24093.

git-svn-id: https://develop.svn.wordpress.org/trunk@29940 602fd350-edb4-49c9-b593-d223f7449a82
2014-10-17 20:20:04 +00:00
Boone Gorges
40dc982a30 Use only LEFT JOINs when a meta_query contains a NOT EXISTS clause.
Mixing LEFT and INNER JOIN in these cases results in posts with no metadata
being improperly excluded from results.

Props johnrom.
Fixes #29062.

git-svn-id: https://develop.svn.wordpress.org/trunk@29890 602fd350-edb4-49c9-b593-d223f7449a82
2014-10-14 02:16:28 +00:00
Boone Gorges
0b05366c6f Introduce support for nested queries in WP_Meta_Query.
Previously, meta query arguments could be joined by a single AND or OR relation.
Now, these queries can be arbitrarily nested, allowing clauses to be linked
together with multiple relations.

Adds unit tests for the new nesting syntax. Modifies a few existing unit tests
that were overly specific for the old SQL syntax. Backward compatibility with
existing syntax is fully maintained.

Props boonebgorges, DrewAPicture.
See #29642.

git-svn-id: https://develop.svn.wordpress.org/trunk@29887 602fd350-edb4-49c9-b593-d223f7449a82
2014-10-13 22:02:18 +00:00
Andrew Nacin
7c145e0bd9 Meta Query: Revert [28659] (and [28665]) due to regressions.
props boonebgorges.
fixes #29285. see #25538.


git-svn-id: https://develop.svn.wordpress.org/trunk@29650 602fd350-edb4-49c9-b593-d223f7449a82
2014-08-27 20:22:35 +00:00
Scott Taylor
e9ba499f23 After [29339] and [29341], add more unit tests and less ambiguous type-checking before bailing in meta-related functions that expect a numeric value for $object_id.
Props SergeyBiryukov.
Fixes #28315.


git-svn-id: https://develop.svn.wordpress.org/trunk@29421 602fd350-edb4-49c9-b593-d223f7449a82
2014-08-06 22:07:42 +00:00
Scott Taylor
5686f4511a Bail on update_user_meta() when $object_id is non-numeric.
Adds unit test.

Props jacklenox, wonderboymusic.
Fixes #28315.


git-svn-id: https://develop.svn.wordpress.org/trunk@29339 602fd350-edb4-49c9-b593-d223f7449a82
2014-08-01 17:09:53 +00:00
Scott Taylor
84ad12b439 Replace all uses of like_escape() with $wpdb->esc_like().
Props miqrogroove.
See #10041.


git-svn-id: https://develop.svn.wordpress.org/trunk@28712 602fd350-edb4-49c9-b593-d223f7449a82
2014-06-10 00:43:32 +00:00
Scott Taylor
577d223715 Wrap individual meta query WHERE clases in parens, missed in 28659.
Props boonebgorges.
Fixes #25538.



git-svn-id: https://develop.svn.wordpress.org/trunk@28665 602fd350-edb4-49c9-b593-d223f7449a82
2014-06-04 18:20:59 +00:00
Scott Taylor
1ffe74ad6f Fix SQL generation when meta_query has an 'relation' => 'OR' for its queries and wants to 'orderby' => 'meta_value'.
Adds unit test.

Props jackreichert.
Fixes #25538.



git-svn-id: https://develop.svn.wordpress.org/trunk@28659 602fd350-edb4-49c9-b593-d223f7449a82
2014-06-04 05:47:19 +00:00
Scott Taylor
5771dfbfa5 Add missing access modifiers to methods in WP_Meta_Query.
See #27881, #22234.


git-svn-id: https://develop.svn.wordpress.org/trunk@28522 602fd350-edb4-49c9-b593-d223f7449a82
2014-05-19 06:34:01 +00:00
Scott Taylor
24b03d819b In update_metadata_by_mid(), $original_value is unused.
See #27882.


git-svn-id: https://develop.svn.wordpress.org/trunk@28328 602fd350-edb4-49c9-b593-d223f7449a82
2014-05-06 21:28:02 +00:00
Drew Jaynes (DrewAPicture)
9215e9f5ab Fix a typo in the deleted_{$meta_type}_meta hook description.
Props aliso.
Fixes #25826.


git-svn-id: https://develop.svn.wordpress.org/trunk@27723 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-25 20:33:21 +00:00
Drew Jaynes (DrewAPicture)
52a57b9f43 Inline documentation for hooks in wp-includes/meta.php.
Props raamdev and kpdesign.
Fixes #25826.


git-svn-id: https://develop.svn.wordpress.org/trunk@27698 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-25 08:55:44 +00:00
Scott Taylor
82ba1702df When using meta_query in a WP_Query, passing NOT EXISTS or '' to compare should not require value to be set. The resulting SQL should then produce the appropriate OR clause for existence of non-existence after passing the query to the $key_only_queries stack internally.
Adds unit tests. 

Props chrisguitarguy, for the original patch.
Fixes #23268.



git-svn-id: https://develop.svn.wordpress.org/trunk@27689 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-24 19:56:54 +00:00
Andrew Nacin
681ca37c63 Return false from metadata_exists() if the get_$type_metadata filter returns a false value.
props xknown.
fixes #22746.


git-svn-id: https://develop.svn.wordpress.org/trunk@27562 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-17 19:39:31 +00:00
Sergey Biryukov
013a4e3381 Correct return values for update_metadata() and related functions.
fixes #21864.

git-svn-id: https://develop.svn.wordpress.org/trunk@27191 602fd350-edb4-49c9-b593-d223f7449a82
2014-02-18 21:35:07 +00:00
Scott Taylor
926427e9ee In update_meta_cache(), ensure that meta is always stored in the same order. Removes an unnecessary $wpdb->prepare statement. Adds unit test.
Props mattheu.
Fixes #25511.



git-svn-id: https://develop.svn.wordpress.org/trunk@26307 602fd350-edb4-49c9-b593-d223f7449a82
2013-11-21 19:30:35 +00:00
Scott Taylor
047f7fb8bd Produce proper CAST for DECIMAL and NUMERIC in Meta Query. Adds a bunch of unit tests.
Props ericlewis.
Fixes #23033.



git-svn-id: https://develop.svn.wordpress.org/trunk@26055 602fd350-edb4-49c9-b593-d223f7449a82
2013-11-08 23:10:41 +00:00
Scott Taylor
cc19bb3a57 Respect the compare operator value in meta_query when value evaluates to null. Adds Unit Test.
Props bradyvercher, gradyetc.
Fixes #22967.



git-svn-id: https://develop.svn.wordpress.org/trunk@26053 602fd350-edb4-49c9-b593-d223f7449a82
2013-11-08 22:51:03 +00:00
Andrew Nacin
169ac00ea5 Return false in update_metadata() and update_metadata_by_mid() when the DB query fails.
props leewillis77.
fixes #24933.


git-svn-id: https://develop.svn.wordpress.org/trunk@25583 602fd350-edb4-49c9-b593-d223f7449a82
2013-09-23 20:31:01 +00:00
Andrew Nacin
822f6e6746 Add REGEXP to meta queries.
"REGEXP is usually a terrible idea to use, but I see no reason to disallow it."

props wonderboymusic.
fixes #18736.


git-svn-id: https://develop.svn.wordpress.org/trunk@25525 602fd350-edb4-49c9-b593-d223f7449a82
2013-09-20 20:12:11 +00:00
Scott Taylor
a73d205ab8 Move get_meta_type() into the WP_Meta_Query class as get_cast_for_type(). WP_Query can then access it like: $this->meta_query->get_cast_for_type().
See #21621, [25255].



git-svn-id: https://develop.svn.wordpress.org/trunk@25269 602fd350-edb4-49c9-b593-d223f7449a82
2013-09-05 23:31:28 +00:00
Scott Taylor
83d1992d34 When meta_type is passed with orderby => meta_value, orderby must also use CAST() to avoid scenarios like: SELECTing by UNSIGNED and then ordering by CHAR. Adds unit test.
Fixes #21621.


git-svn-id: https://develop.svn.wordpress.org/trunk@25255 602fd350-edb4-49c9-b593-d223f7449a82
2013-09-05 16:56:36 +00:00
Scott Taylor
20fa8b87b4 Improve inline docs for function params that can be serialized when non-scalar. Fixes #18488.
git-svn-id: https://develop.svn.wordpress.org/trunk@25076 602fd350-edb4-49c9-b593-d223f7449a82
2013-08-21 21:10:23 +00:00
Andrew Nacin
b43712e0f7 New develop.svn.wordpress.org repository based on the old core.svn repository.
* All WordPress files move to a src/ directory.
 * New task runner (Grunt), configured to copy a built WordPress to build/.
 * svn:ignore and .gitignore for Gruntfile.js, wp-config.php, and node.js.
 * Remove Akismet external from develop.svn. Still exists in core.svn.
 * Drop minified files from src/. The build process will now generate these.

props koop.
see #24976.

and see http://wp.me/p2AvED-1AI.



git-svn-id: https://develop.svn.wordpress.org/trunk@25001 602fd350-edb4-49c9-b593-d223f7449a82
2013-08-07 05:25:25 +00:00