200 Commits

Author SHA1 Message Date
Scott Taylor
5743898e1e @param cleanup:
* `get_metadata()` will return literally anything, needs to be `mixed`
* `wp()` and `WP_Query::__construct()` no longer just take a query string
* Clarify a few others

See #30799.


git-svn-id: https://develop.svn.wordpress.org/trunk@31212 602fd350-edb4-49c9-b593-d223f7449a82
2015-01-16 19:02:26 +00:00
Scott Taylor
156a673660 In WP_Query, only call magic method internals again whitelists of properties and methods, $compat_fields and $compat_methods. Remove __unset() since __set() is not implemented.
See #30891.


git-svn-id: https://develop.svn.wordpress.org/trunk@31151 602fd350-edb4-49c9-b593-d223f7449a82
2015-01-11 22:40:53 +00:00
Scott Taylor
349e5cb318 Adding a @return annotation to constructors is generally not recommended as a constructor does not have a meaningful return value. Constructors do not have meaningful return values, anything that is returned from here is discarded.
See #30799.


git-svn-id: https://develop.svn.wordpress.org/trunk@31126 602fd350-edb4-49c9-b593-d223f7449a82
2015-01-10 06:53:48 +00:00
Scott Taylor
6fd11624d1 The keyword elseif should be used instead of else if so that all control keywords look like single words.
This was a mess, is now standardized across the codebase, except for a few 3rd-party libs. 

See #30799.


git-svn-id: https://develop.svn.wordpress.org/trunk@31090 602fd350-edb4-49c9-b593-d223f7449a82
2015-01-08 07:04:40 +00:00
wonderboymusic
1dd301f634 WP_Query->parse_tax_query() - for BC, this method is not marked as protected. See [28987]. It needs an access modifier, it shall have public. The comment remains.
See #30799.


git-svn-id: https://develop.svn.wordpress.org/trunk@31081 602fd350-edb4-49c9-b593-d223f7449a82
2015-01-08 05:53:58 +00:00
Scott Taylor
44fe0ebf75 Correct the @param docs for arguments that are truthy/falsey.
See #30799.


git-svn-id: https://develop.svn.wordpress.org/trunk@30983 602fd350-edb4-49c9-b593-d223f7449a82
2014-12-20 23:03:21 +00:00
Boone Gorges
98d17497d2 In WP_Query::get_queried_object(), use the new format for referencing tax query clauses.
`queried_terms`, rather than `queries`, is the tax_query property where a flat
index of terms is stored.

See [29901] for a similar fix in `redirect_canonical()`. See #29738.

Props dd32.
Fixes #30623.

git-svn-id: https://develop.svn.wordpress.org/trunk@30771 602fd350-edb4-49c9-b593-d223f7449a82
2014-12-07 14:57:53 +00:00
Scott Taylor
095bfabfa9 Improve various @param docs.
See #30224.


git-svn-id: https://develop.svn.wordpress.org/trunk@30682 602fd350-edb4-49c9-b593-d223f7449a82
2014-12-01 02:16:36 +00:00
Scott Taylor
ee388b9852 Improve various @param docs.
See #30224.


git-svn-id: https://develop.svn.wordpress.org/trunk@30673 602fd350-edb4-49c9-b593-d223f7449a82
2014-11-30 22:55:08 +00:00
Drew Jaynes (DrewAPicture)
0960ef7484 4.1 Docs Audit: Improve inline documentation for the new WP_Query::setup_postdata() method.
See #30469.


git-svn-id: https://develop.svn.wordpress.org/trunk@30620 602fd350-edb4-49c9-b593-d223f7449a82
2014-11-28 12:17:27 +00:00
Boone Gorges
5e730a0cf9 Pass query object to 'the_post' filter.
Props tlovett1.
Fixes #30327.

git-svn-id: https://develop.svn.wordpress.org/trunk@30323 602fd350-edb4-49c9-b593-d223f7449a82
2014-11-13 02:24:43 +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
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
114c1f32ba Improve global variable setting in setup_postdata().
`setup_postdata()` is responsible for setting a number of global variables
that are used for post pagination (`$pages`, `$page`, `$nextpage`) and the
generation of post excerpts (`$more`). These variables should be sensitive to
the currently running instance of `WP_Query` - rather than the main query -
so that these features work properly inside of secondary `WP_Query` loops.

This changeset moves the logic of `setup_postdata()` into a method on `WP_Query`,
and converts `setup_postdata()` to a wrapper.

Props boonebgorges, wonderboymusic.
See #25349.
Fixes #9256, #20904.

git-svn-id: https://develop.svn.wordpress.org/trunk@30085 602fd350-edb4-49c9-b593-d223f7449a82
2014-10-29 02:31:37 +00:00
Boone Gorges
e36cac6794 Check that search value is scalar before parsing.
Prevents PHP notices when non-scalar values are passed.

Includes unit tests.

Props tivnet.
Fixes #29736.

git-svn-id: https://develop.svn.wordpress.org/trunk@29912 602fd350-edb4-49c9-b593-d223f7449a82
2014-10-16 03:31:27 +00:00
Boone Gorges
6d94c2e30d Introduce support for nested queries in WP_Tax_Query.
Previously, tax 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.

In a few places, WP_Query runs through a list of clauses in a tax_query in order
to set certain query vars for backward compatibility. The necessary changes have
been made to WP_Query to support this feature with the new complex structure of
tax_query. Unit tests are included for these backward compatibility fixes.

Unit tests for the new nesting syntax are included.

Props boonebgorges.
Fixes #29718. See #29738.

git-svn-id: https://develop.svn.wordpress.org/trunk@29891 602fd350-edb4-49c9-b593-d223f7449a82
2014-10-14 04:02:41 +00:00
Konstantin Kovshenin
061fe13c9f Use the primary meta_query clause when parsing orderby in WP_Query.
When using legacy `meta_key`, `meta_value`, etc. arguments in `WP_Query`,
they're converted into the first clause of a `meta_query`. By using that
clause instead of the original arguments, we make sure that behavior is
consistent between the two available formats.

props boonebgorges.
fixes #16814.


git-svn-id: https://develop.svn.wordpress.org/trunk@29855 602fd350-edb4-49c9-b593-d223f7449a82
2014-10-08 15:11:14 +00:00
Scott Taylor
0b0eb4fb20 Ordering by RAND():
The shortcode callbacks for `gallery` and `playlist` check for `'RAND' == $atts['order']`, which isn't a valid value for `order`. Remove those checks and update the docs.

In `WP_Query`, if the value of `orderby` is `rand`, `order` is irrelevant and should be unset.

Adds unit tests.

Fixes #29629.


git-svn-id: https://develop.svn.wordpress.org/trunk@29760 602fd350-edb4-49c9-b593-d223f7449a82
2014-09-23 03:51:24 +00:00
Andrew Nacin
1861615be2 Query: Add comment to the parse_tax_query() method reflecting [28987].
see #28739.


git-svn-id: https://develop.svn.wordpress.org/trunk@29658 602fd350-edb4-49c9-b593-d223f7449a82
2014-09-01 19:50:33 +00:00
Drew Jaynes (DrewAPicture)
7c8086a9a6 Fix a couple of misplaced/misordered argument descriptions in the WP_Query arguments hash notation.
See #25367.


git-svn-id: https://develop.svn.wordpress.org/trunk@29578 602fd350-edb4-49c9-b593-d223f7449a82
2014-08-23 19:36:00 +00:00
Sergey Biryukov
ace2e0ba1f Correct 'no_found_rows' parameter description.
see #25367.

git-svn-id: https://develop.svn.wordpress.org/trunk@29538 602fd350-edb4-49c9-b593-d223f7449a82
2014-08-19 07:27:51 +00:00
Drew Jaynes (DrewAPicture)
a84d50dfa3 Fix some words that aren't words.
See #28885.


git-svn-id: https://develop.svn.wordpress.org/trunk@29454 602fd350-edb4-49c9-b593-d223f7449a82
2014-08-09 19:29:37 +00:00
Sergey Biryukov
4ba18baec2 Remove a redundant condition for comment feeds from WP_Query::get_posts().
props engelen.
fixes #28401.

git-svn-id: https://develop.svn.wordpress.org/trunk@29257 602fd350-edb4-49c9-b593-d223f7449a82
2014-07-21 15:37:14 +00:00
Drew Jaynes (DrewAPicture)
1850b9a60a Fill out inline documentation for magic methods added to the WP_Query class in [28523].
See #27881, #22234 and #28885.


git-svn-id: https://develop.svn.wordpress.org/trunk@29141 602fd350-edb4-49c9-b593-d223f7449a82
2014-07-13 23:35:52 +00:00
John Blackbourn
b3e3684d21 Add support for a full path parameter to is_page() and is_single(). Props Jesper800, engelen, johnbillion. Fixes #16802.
git-svn-id: https://develop.svn.wordpress.org/trunk@29039 602fd350-edb4-49c9-b593-d223f7449a82
2014-07-09 16:03:17 +00:00
Scott Taylor
8ce7c39e44 Allow an array() to be passed as the value for orderby to WP_Query. Allows for an independent order value for each key.
Example: `'orderby' => array( 'title' => 'DESC', 'menu_order' => 'ASC' )`.

Adds docs and unit tests.

Props wonderboymusic, johnbillion, DrewAPicture, dd32, andy.
See #17065.


git-svn-id: https://develop.svn.wordpress.org/trunk@29027 602fd350-edb4-49c9-b593-d223f7449a82
2014-07-08 17:15:53 +00:00
Scott Taylor
f8b878f8da WP_Query::parse_tax_query() has always been documented as protected. Plugins should never have used it. However, it did not have a protected access modifier, so its visibility was public by default. If the access modifier had been present, accessing the method in a plugin would have produced a fatal error. The access modifier was added in [28523], along with magic methods to allow it to be accessed for BC. This one method is problematic because it expects to be passed a reference. The WP_Query::__call() logic does not go out of its way to fix this signature discrepancy, and so a warning is thrown: Parameter 1 to WP_Query::parse_tax_query() expected to be a reference, value given.
Remove the `protected` access modifier from `WP_Query::parse_tax_query()`.

Fixes #28739.


git-svn-id: https://develop.svn.wordpress.org/trunk@28987 602fd350-edb4-49c9-b593-d223f7449a82
2014-07-04 01:28:02 +00:00
Drew Jaynes (DrewAPicture)
6e7e9f07ab First-run documention of WP_Query argument defaults.
Props siobhan for some language tweaks. Props DrewAPicture.
See #25367.


git-svn-id: https://develop.svn.wordpress.org/trunk@28887 602fd350-edb4-49c9-b593-d223f7449a82
2014-06-28 23:02:05 +00:00
Sergey Biryukov
f68d096c31 Make sure the first number in LIMIT clause in WP_Query::get_posts() is always an integer.
fixes #23383.

git-svn-id: https://develop.svn.wordpress.org/trunk@28864 602fd350-edb4-49c9-b593-d223f7449a82
2014-06-27 00:03:05 +00:00
Sergey Biryukov
21cf4d1ab4 Don't kill an empty search query.
see #11330.

git-svn-id: https://develop.svn.wordpress.org/trunk@28804 602fd350-edb4-49c9-b593-d223f7449a82
2014-06-23 13:33:39 +00:00
Sergey Biryukov
f7d7ecd0a6 Prevent multiple hierarchical posts with the same slug from being displayed in single post template.
fixes #28611.

git-svn-id: https://develop.svn.wordpress.org/trunk@28803 602fd350-edb4-49c9-b593-d223f7449a82
2014-06-23 13:14:39 +00:00
Scott Taylor
5ec545d5ab Revert [28613] and [28664]. A good idea, but too much BC baggage.
See #28099.



git-svn-id: https://develop.svn.wordpress.org/trunk@28783 602fd350-edb4-49c9-b593-d223f7449a82
2014-06-20 16:20:35 +00:00
Scott Taylor
f2b3e0c4e4 Don't use variable variables in WP_Query::get_posts().
See #27881.


git-svn-id: https://develop.svn.wordpress.org/trunk@28737 602fd350-edb4-49c9-b593-d223f7449a82
2014-06-11 17:49:07 +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
Sergey Biryukov
d33d83495c Move is_admin check to a more appropriate place.
see #11330.

git-svn-id: https://develop.svn.wordpress.org/trunk@28668 602fd350-edb4-49c9-b593-d223f7449a82
2014-06-04 23:46:39 +00:00
Sergey Biryukov
0b5eac467f Avoid a PHP notice when using WP_Query::get_queried_object() in pre_get_posts action.
props wpsmith.
fixes #28412.

git-svn-id: https://develop.svn.wordpress.org/trunk@28667 602fd350-edb4-49c9-b593-d223f7449a82
2014-06-04 23:42:09 +00:00
Scott Taylor
2948b6d35a Prevent admin breakage for s in WP_Query after [28623].
See #11330.



git-svn-id: https://develop.svn.wordpress.org/trunk@28666 602fd350-edb4-49c9-b593-d223f7449a82
2014-06-04 20:02:46 +00:00
Scott Taylor
ee9f2e48bb After [28613], also kill queries that explicityly pass empty arrays to category__in, tag__in, tag_slug__in, and author__in to WP_Query.
Adds unit tests.
Fixes #28099.


git-svn-id: https://develop.svn.wordpress.org/trunk@28664 602fd350-edb4-49c9-b593-d223f7449a82
2014-06-04 17:49:26 +00:00
Scott Taylor
8f247884c2 Simplify the logic for determining isset( $this->query['s'] ) after [28612], and don't limit this logic to just the main query.
Props SergeyBiryukov.
Fixes #11330.


git-svn-id: https://develop.svn.wordpress.org/trunk@28623 602fd350-edb4-49c9-b593-d223f7449a82
2014-05-29 20:49:28 +00:00
Scott Taylor
8bb2117aad If post_status is passed to WP_Query as an array containing 'any' and anything else, don't exclude the other values if they match when running any's exclusion logic.
Adds unit tests.

Fixes #28007.


git-svn-id: https://develop.svn.wordpress.org/trunk@28622 602fd350-edb4-49c9-b593-d223f7449a82
2014-05-29 20:41:53 +00:00
Scott Taylor
8530693a51 If post__in or post_parent__in is passed to WP_Query as an empty array, nuke the query. Both vars are currently only checked for truthiness after which they are ignored. Setting these vars at all indicates explicit filtering being desired.
Adds unit test.

Fixes #28099.


git-svn-id: https://develop.svn.wordpress.org/trunk@28613 602fd350-edb4-49c9-b593-d223f7449a82
2014-05-29 06:03:15 +00:00
Scott Taylor
4d1e46231b When parsing the main query, if s is set to empty: ?s= and $this->is_main_query() && array_key_exists( 's', $this->query ) - kill the query instead of loading the homepage. This will load the search page with no results.
Fixes #11330.



git-svn-id: https://develop.svn.wordpress.org/trunk@28612 602fd350-edb4-49c9-b593-d223f7449a82
2014-05-29 05:47:35 +00:00
Scott Taylor
32893ac7ea Allow users to sort posts by type in WP_Query.
Props DeBAAT.
Fixes #28214.


git-svn-id: https://develop.svn.wordpress.org/trunk@28605 602fd350-edb4-49c9-b593-d223f7449a82
2014-05-29 00:23:45 +00:00
Scott Taylor
0baa73f2e4 Apply order to each passed value for orderby in WP_Query:
* Since `orderby` in `WP_Query` can accept space-delimited sets, yet only one `order` value: when multiple values are passed (and `DESC` is the order), the default sort order `ASC` is being applied to all values before the last in the set.
* There is a unit test that sporadically fails since 3.6 in `tests/post/revision` due to multiple posts having the same `post_date` from being added so rapidly
* When ordering revisions in `wp_get_post_revisions()`, order by `post_date ID`
* Change the `order` value in `wp_get_post_revisions()` to `ASC`. This will produce SQL like: `ORDER BY $wpdb->posts.post_date ASC, $wpdb->posts.ID ASC`. Previously, this would have produced SQL like: `ORDER BY $wpdb->posts.post_date DESC`, and with the addition of ` ID`: `ORDER BY $wpdb->posts.post_date ASC, $wpdb->posts.ID DESC`. Clearly, wrong. The original SQL produced: `ORDER BY $wpdb->posts.post_date DESC`. As such, return the reversions in reverse order using `array_reverse()`. Not doing so would break "Preview Changes."
* Add unit tests to assert that all of this works.
* All existing unit tests pass with the change to ordering multiple `orderby`s in `WP_Query`.
* In the future, we should support independent `order` for each `orderby`, see #17065.

Props SergeyBiryukov, wonderboymusic.
Fixes #26042.


git-svn-id: https://develop.svn.wordpress.org/trunk@28541 602fd350-edb4-49c9-b593-d223f7449a82
2014-05-22 18:18:11 +00:00
Scott Taylor
6f4df85c8f WP_Query was only missing one access modifier.
Add access modifier (`public`) to applicable class methods/members of `WP_Rewrite`. I am not brave enough to set some of the `var`s to `private` without more testing.

See #27881, #22234.


git-svn-id: https://develop.svn.wordpress.org/trunk@28533 602fd350-edb4-49c9-b593-d223f7449a82
2014-05-19 17:40:08 +00:00
Scott Taylor
bf54ad6054 Add missing access modifiers to methods in WP_Query. Add magic methods for __get(), __set(), __isset(), __unset(), and __call().
Add unit test for magic methods.

See #27881, #22234.


git-svn-id: https://develop.svn.wordpress.org/trunk@28523 602fd350-edb4-49c9-b593-d223f7449a82
2014-05-19 06:48:56 +00:00
Scott Taylor
098a5145c5 In WP_Query, remove duplicate variable setting:
* In `->parse_search_order()`, a value is always set for `$search_orderby`, no need for empty initialization
* In `->get_posts()`, `$fields` is always set, no need for empty initialization

See #27882.


git-svn-id: https://develop.svn.wordpress.org/trunk@28333 602fd350-edb4-49c9-b593-d223f7449a82
2014-05-06 21:42:28 +00:00
Andrew Nacin
0ad35e169b Revert the conversion of adjacent post queries to WP_Query. Explanation on the ticket.
Reverts [27285], [27286], [27287], [27288], [27291], [27292], [27293], [27296], [27633], [27634], [27635], and [27692].

see #26937.


git-svn-id: https://develop.svn.wordpress.org/trunk@27836 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-29 06:02:01 +00:00
Scott Taylor
710f11f2df When using WP_Query's "fields" => "ids" (or "fields" => "id=>parent"), the returned values should be an array of integers, not array of integers represented by strings.
Adds unit tests. All other unit tests pass.

Props danielbachhuber.
Fixes #27252.



git-svn-id: https://develop.svn.wordpress.org/trunk@27686 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-24 18:54:38 +00:00
Andrew Nacin
5a49e9f4bf WP_Query: allow split_the_query = false to avoid a split.
see #26937.


git-svn-id: https://develop.svn.wordpress.org/trunk@27633 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-20 02:53:44 +00:00