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
Scott Taylor
7918d5cd98
Make url_to_postid() work for custom post type URLs. Use get_post_types() and get_taxonomies() instead of directly accessing globals. Adds unit test.
...
Props faishal, for the globals fix.
Fixes #19744 .
git-svn-id: https://develop.svn.wordpress.org/trunk@25659 602fd350-edb4-49c9-b593-d223f7449a82
2013-10-02 19:41:19 +00:00
Andrew Nacin
cff3bb14e6
Order search results by relevance, rather than by date.
...
The ordering logic is as follows:
* Full sentence matches in post titles.
* All search terms in post titles.
* Any search terms in post titles.
* Full sentence matches in post content.
Each section and any remaining posts are then sorted by date.
Introduces some filters:
* wp_search_stopwords, to filter stop words ignored in WHERE.
* posts_search_orderby, to filter the ORDER BY when ordering search results.
props azaozz, wonderboymusic.
fixes #7394 .
git-svn-id: https://develop.svn.wordpress.org/trunk@25632 602fd350-edb4-49c9-b593-d223f7449a82
2013-09-27 17:33:36 +00:00
Andrew Nacin
de89edd699
When is_main_query() is called during the pre_get_posts hook, issue _doing_it_wrong().
...
The is_main_query() WP_Query method should be used in these instances instead.
see #23329 .
git-svn-id: https://develop.svn.wordpress.org/trunk@25605 602fd350-edb4-49c9-b593-d223f7449a82
2013-09-24 17:09:56 +00:00
Andrew Nacin
13408ddcbd
Introduce a reset_postdata() method on the WP_Query object, which wp_reset_postdata() now wraps.
...
props ericlewis.
fixes #24785 .
git-svn-id: https://develop.svn.wordpress.org/trunk@25601 602fd350-edb4-49c9-b593-d223f7449a82
2013-09-24 15:52:41 +00:00
Scott Taylor
e72ffa5d96
Move checks for post_type being an array inline. See [25291], [25292], #18614 .
...
git-svn-id: https://develop.svn.wordpress.org/trunk@25312 602fd350-edb4-49c9-b593-d223f7449a82
2013-09-10 03:01:10 +00:00
Scott Taylor
9ece28e545
Add an action at the end of WP_Query::parse_tax_query() called (wait for it...) parse_tax_query which will enable developers to alter $this->tax_query->queries before SQL is generated. pre_get_posts is too early for many scenarios.
...
git-svn-id: https://develop.svn.wordpress.org/trunk@25311 602fd350-edb4-49c9-b593-d223f7449a82
2013-09-10 02:35:26 +00:00
Scott Taylor
48dc7e576b
Ensure that the post type object is the queried object when a post type has been registered with has_archive => true. Ensure it is not stomped when decorated with tax_query. Adds unit tests.
...
Props nacin.
Fixes #18614 .
git-svn-id: https://develop.svn.wordpress.org/trunk@25291 602fd350-edb4-49c9-b593-d223f7449a82
2013-09-06 22:06:40 +00:00
Scott Taylor
22278ec6a9
Introduce wp_using_ext_object_cache() - mimic wp_suspend_cache_invalidation() and discourage direct access to $_wp_using_ext_object_cache, cleaning up importing of globals in functions and provides function to modify that global. Loads the packaged object cache when an external cache hasn't been loaded or doesn't contain wp_cache_init().
...
Fixes #21401 .
git-svn-id: https://develop.svn.wordpress.org/trunk@25289 602fd350-edb4-49c9-b593-d223f7449a82
2013-09-06 18:09:24 +00:00
Scott Taylor
0474a18863
Allow is_tag() to accept term_id, slug, 'term_name or array of any. Many other is_*()` funcs already do this. Adds unit tests.
...
Props ramiy.
Fixes #18746 .
git-svn-id: https://develop.svn.wordpress.org/trunk@25287 602fd350-edb4-49c9-b593-d223f7449a82
2013-09-06 17:26:04 +00:00
Scott Taylor
09b9c44de9
Check bad dates and redirect, instead of 404ing, as necessary and appropriate.
...
Adds query, conditional, and canonical Unit Tests.
Props kovshenin, SergeyBiryukov, DrewAPicture.
Fixes #10935 .
git-svn-id: https://develop.svn.wordpress.org/trunk@25280 602fd350-edb4-49c9-b593-d223f7449a82
2013-09-06 16:35:22 +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
57b1d5ab28
Introduce author__in and author__not_in query vars. Fixes issue with multiple author exclusion when comma-separated string is passed for author. Adds a bunch of missing unit tests.
...
Props pollett for initial patch.
Fixes #16854 .
git-svn-id: https://develop.svn.wordpress.org/trunk@25248 602fd350-edb4-49c9-b593-d223f7449a82
2013-09-04 21:32:11 +00:00