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
Scott Taylor
36df368171
In WP_Query::get_queried_object()
, account for pre_get_posts
by checking for tag
when tag_id
isn't present. Tags still need to be rolled up into tax_query
. Add a unit test confirming expected query vars during and after pre_get_posts
.
...
Props mattonomics for a patch.
See #27362 .
git-svn-id: https://develop.svn.wordpress.org/trunk@27511 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-12 04:07:41 +00:00
Scott Taylor
dfc11a170b
On second thought, allow posts_per_rss
to be set in pre_get_posts
to override the posts_per_rss
option. There are backwards compatibility concerns otherwise.
...
Props nacin.
Partially reverts [27455]. Updates the unit test. See #25380 .
git-svn-id: https://develop.svn.wordpress.org/trunk@27456 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-07 18:58:33 +00:00
Scott Taylor
65932f71fd
When setting posts_per_page
in WP_Query::get_posts()
, check for is_feed()
in the same place where posts_per_page
is set when it is not already set. Previously, when is_feed()
was true, posts_per_page
would be arbitrarily overwritten. This fix allows posts_per_page
to be set during pre_get_posts
when is_feed()
is true and not be overwritten.
...
Adds unit test.
Props wokamoto.
Fixes #25380 .
git-svn-id: https://develop.svn.wordpress.org/trunk@27455 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-07 18:32:40 +00:00
Andrew Nacin
ed43f002b8
Add has_password and post_password query variables to WP_Query.
...
* has_password true means posts with passwords, false means posts without.
* post_password can query for posts with a particular password.
props wonderboymusic, robmiller.
fixes #20308 .
git-svn-id: https://develop.svn.wordpress.org/trunk@27395 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-04 07:44:28 +00:00
Andrew Nacin
88f1b6e7ec
Add a $default argument to get_query_var() and WP_Query::get(). fixes #16471 .
...
git-svn-id: https://develop.svn.wordpress.org/trunk@27304 602fd350-edb4-49c9-b593-d223f7449a82
2014-02-26 23:57:10 +00:00
Drew Jaynes
b85d8ddbd8
Remove now-unnecessary vanity spacing of various hooks in wp-includes/query.php.
...
See #25514 .
git-svn-id: https://develop.svn.wordpress.org/trunk@27211 602fd350-edb4-49c9-b593-d223f7449a82
2014-02-20 17:58:42 +00:00
Drew Jaynes
efd0b5081e
Inline documentation hooks in wp-includes/query.php.
...
Covers documentation for the various remaining query hooks, notably including but not limited to:
* `parse_query`
* `parse_tax_query`
* `pre_get_posts`
* `posts_results`
* `the_posts`
* `found_posts`
* `the_post`
Props dougwollison, DrewAPicture.
See #25514 .
git-svn-id: https://develop.svn.wordpress.org/trunk@27210 602fd350-edb4-49c9-b593-d223f7449a82
2014-02-20 17:53:33 +00:00
Drew Jaynes
3776fd7d5d
Inline documentation for various SQL clause hooks in wp-includes/query.php.
...
Covers documentation for SQL clause hooks related to comment feeds, including:
* `comment_feed_join`
* `comment_feed_where`
* `comment_feed_groupby`
* `comment_feed_orderby`
* `comment_feed_limits`
Props dougwollison, DrewAPicture.
See #25514 .
git-svn-id: https://develop.svn.wordpress.org/trunk@27208 602fd350-edb4-49c9-b593-d223f7449a82
2014-02-20 17:45:19 +00:00
Drew Jaynes
5f068b8a11
Inline documentation for various SQL clause hooks in wp-includes/query.php.
...
Covers documentation for SQL clause hooks specified for use by caching plugins, including:
* `posts_selection`
* `posts_where_request`
* `posts_groupby_request`
* `posts_join_request`
* `posts_orderby_request`
* `posts_distinct_request`
* `posts_fields_request`
* `post_limits_request`
* `posts_clauses_request`
Props dougwollison, DrewAPicture.
See #25514 .
git-svn-id: https://develop.svn.wordpress.org/trunk@27207 602fd350-edb4-49c9-b593-d223f7449a82
2014-02-20 17:40:14 +00:00
Drew Jaynes
5fbf05a2cb
Inline documentation for various SQL clause hooks in wp-includes/query.php.
...
Covers documentation for general SQL clause hooks, including:
* `posts_where`
* `posts_join`
* `posts_where_paged`
* `posts_groupby`
* `posts_join_paged`
* `posts_orderby`
* `posts_distinct`
* `post_limits`
* `posts_fields`
* `posts_clauses`
Props dougwollison, DrewAPicture.
See #25514 .
git-svn-id: https://develop.svn.wordpress.org/trunk@27206 602fd350-edb4-49c9-b593-d223f7449a82
2014-02-20 17:33:16 +00:00
Scott Taylor
b8e7bbb0f2
Fix an error in SQL generation when perm
is set and an array is passed for post_status
. Adds unit test.
...
Props oso96_2000.
Fixes #25523 .
git-svn-id: https://develop.svn.wordpress.org/trunk@27067 602fd350-edb4-49c9-b593-d223f7449a82
2014-02-02 07:35:54 +00:00
Scott Taylor
956aa1c8ab
Fix imperceptible whitespace cruff from [27017].
...
git-svn-id: https://develop.svn.wordpress.org/trunk@27018 602fd350-edb4-49c9-b593-d223f7449a82
2014-01-22 22:34:49 +00:00
Scott Taylor
4725e85857
Fix a bit of whitespace from [27016].
...
git-svn-id: https://develop.svn.wordpress.org/trunk@27017 602fd350-edb4-49c9-b593-d223f7449a82
2014-01-22 22:33:28 +00:00
Scott Taylor
300cb7451e
Let is_attachment()
accept an $attachment parameter, similar to is_page()
and is_single()
. Adds Unit Tests for all 3.
...
Props alex-ye for the initial patch.
Fixes #24257 .
git-svn-id: https://develop.svn.wordpress.org/trunk@27016 602fd350-edb4-49c9-b593-d223f7449a82
2014-01-22 22:30:36 +00:00
Sergey Biryukov
0938ef0815
Avoid a fatal error in wp_reset_postdata() if $wp_query global is not set.
...
see #26775 for trunk.
git-svn-id: https://develop.svn.wordpress.org/trunk@26932 602fd350-edb4-49c9-b593-d223f7449a82
2014-01-11 23:56:43 +00:00
Scott Taylor
f8338aa3c3
In WP_Query::get_queried_object()
, move the check for $query['terms']
to a place where $query
is actually set. This should be included if [26864] makes it into 3.8.1.
...
Props SergeyBiryukov.
See #26728 , [26864], #26634 , #26627 .
git-svn-id: https://develop.svn.wordpress.org/trunk@26874 602fd350-edb4-49c9-b593-d223f7449a82
2013-12-27 19:29:39 +00:00
Scott Taylor
5cb2ad494e
Fix a regression for get_queried_object()
by checking for category_name
when cat
isn't set - mainly is_category()
being true for Uncategorized or when queried object is accessed in pre_get_posts
. Also check for $query['terms']
when trying to assign a term as the queried object when is_tax()
is true. Adds a unit test. See [26007] for how I originally broke this while fixing a bigger issue.
...
Props Chouby, jeremyfelt.
Fixes #26634 , #26627 .
git-svn-id: https://develop.svn.wordpress.org/trunk@26864 602fd350-edb4-49c9-b593-d223f7449a82
2013-12-22 18:30:09 +00:00
Andrew Nacin
fdcf1f4c12
Revert [26012] for now, which had fixed using paged
with offset
in WP_Query but introduced side effects for those working around it.
...
see #18897 .
git-svn-id: https://develop.svn.wordpress.org/trunk@26525 602fd350-edb4-49c9-b593-d223f7449a82
2013-12-02 16:25:54 +00:00
Scott Taylor
95a00fb920
Fix canonical redirection of cat
as described in #15256 by rolling the cat
query var into tax_query
, instead of category__in
/ category__not_in
. Top-level categories were only redirecting properly if they had no children.
...
All unit tests pass. Tests marked for #15256 are no longer skipped.
Fixes #15256 .
Props dd32.
git-svn-id: https://develop.svn.wordpress.org/trunk@26090 602fd350-edb4-49c9-b593-d223f7449a82
2013-11-11 18:35:21 +00:00
Sergey Biryukov
a2aed7b119
Fix docblock formatting. fixes #25893 .
...
git-svn-id: https://develop.svn.wordpress.org/trunk@26081 602fd350-edb4-49c9-b593-d223f7449a82
2013-11-11 13:31:19 +00:00
Sergey Biryukov
82878e0859
Add @return for WP_Query::parse_search(). props tivnet. fixes #25894 .
...
git-svn-id: https://develop.svn.wordpress.org/trunk@26061 602fd350-edb4-49c9-b593-d223f7449a82
2013-11-09 16:04:02 +00:00
Sergey Biryukov
8a87a2345b
Declare the variable before using it. props tivnet. fixes #25895 for trunk.
...
git-svn-id: https://develop.svn.wordpress.org/trunk@26060 602fd350-edb4-49c9-b593-d223f7449a82
2013-11-09 15:52:30 +00:00
Scott Taylor
d8f57f88ad
Respect paged
when offset
is used in WP_Query
. Adds unit tests.
...
Props coffee2code.
Fixes #18897 .
git-svn-id: https://develop.svn.wordpress.org/trunk@26012 602fd350-edb4-49c9-b593-d223f7449a82
2013-11-05 01:34:44 +00:00
Scott Taylor
0923b7b93a
Category and tag are typically checked before checking for a custom taxonomy. If the global query matches category or tag (even if it also has tax_query set), return category/tag as the queried object, instead of arbitrarily returning the first term in the tax_query
stack (typically those added with 'pre_get_posts').
...
Real world example: http://www.emusic.com/17dots/topics/daily-download/ - "tag" page, regionalized for US-only content using `pre_get_posts` passing in the terms "US" and "ALL" for "region" (custom tax). All of the theme functions would output "ALL" as the term name. Even though it was a tag archive, the queried object was an arbitrary term from `tax_query`.
See [26006]. All unit tests pass.
Fixes #20767 .
git-svn-id: https://develop.svn.wordpress.org/trunk@26007 602fd350-edb4-49c9-b593-d223f7449a82
2013-11-04 23:53:55 +00:00
Andrew Nacin
47c58004fe
Query stopwords: Only eliminate single A-Z letters as search terms.
...
Stop trying to match any single letters that are not East Asian characters, as this requires PCRE with UTF-8 support; and because it doesn't actually work.
fixes #25709 .
git-svn-id: https://develop.svn.wordpress.org/trunk@25954 602fd350-edb4-49c9-b593-d223f7449a82
2013-10-27 20:50:31 +00:00
Andrew Nacin
287e4db6f6
In search stopwords filtering, suppress possible PHP warnings when PCRE lacks UTF-8 support.
...
see #25709 .
git-svn-id: https://develop.svn.wordpress.org/trunk@25932 602fd350-edb4-49c9-b593-d223f7449a82
2013-10-26 05:58:37 +00:00
Andrew Nacin
a75c4a56a8
Avoid notice with search feeds.
...
fixes #25677 .
git-svn-id: https://develop.svn.wordpress.org/trunk@25889 602fd350-edb4-49c9-b593-d223f7449a82
2013-10-23 20:54:22 +00:00
Andrew Nacin
d3981e2793
Always apply the posts_search filter. Restores 3.6 behavior.
...
props SergeyBiryukov.
fixes #25664 .
git-svn-id: https://develop.svn.wordpress.org/trunk@25867 602fd350-edb4-49c9-b593-d223f7449a82
2013-10-22 17:20:17 +00:00
Dominik Schilling (ocean90)
3f422038dd
Move get_current_user_id()
call out of if-block, see [25669].
...
props layotte.
fixes #25372 .
git-svn-id: https://develop.svn.wordpress.org/trunk@25689 602fd350-edb4-49c9-b593-d223f7449a82
2013-10-03 13:35:12 +00:00
Dominik Schilling (ocean90)
6311fbbfdb
Replace use of global $user_ID
in favor of get_current_user_id()
. fixes #25372 .
...
git-svn-id: https://develop.svn.wordpress.org/trunk@25669 602fd350-edb4-49c9-b593-d223f7449a82
2013-10-02 21:09:52 +00:00
Andrew Nacin
dac3f63f9c
Don't order feeds of search results by relevance.
...
Allow for orderby=relevance to explicitly request relevance.
fixes #7394 .
git-svn-id: https://develop.svn.wordpress.org/trunk@25668 602fd350-edb4-49c9-b593-d223f7449a82
2013-10-02 21:04:36 +00:00