200 Commits

Author SHA1 Message Date
Boone Gorges
1d3749ea87 In WP_Query, set is_home to false during REST requests.
Props danielbachhuber.
Fixes #34373.

git-svn-id: https://develop.svn.wordpress.org/trunk@35690 602fd350-edb4-49c9-b593-d223f7449a82
2015-11-18 21:17:30 +00:00
Scott Taylor
56d7611f09 Rewrite: alleviate conflicts between image attachment pages and posts when permalink structure is /%postname%/.
Adds unit test.

Props SergeyBiryukov.
Fixes #24612.


git-svn-id: https://develop.svn.wordpress.org/trunk@35679 602fd350-edb4-49c9-b593-d223f7449a82
2015-11-18 19:58:01 +00:00
Drew Jaynes
1a999bce25 Query: Introduce the content_pagination filter, which makes it possible to manipulate how post content is split into "pages" in WP_Query::setup_postdata().
The "pages" — or chunks of post content – are determined by splitting based on the presence of `<!-- nextpage -->` tags in the post content.

Props sirzooro, chriscct7.
Fixes #9911.


git-svn-id: https://develop.svn.wordpress.org/trunk@35285 602fd350-edb4-49c9-b593-d223f7449a82
2015-10-20 06:32:16 +00:00
Drew Jaynes
0cb7c0bd9f Docs: Add missing descriptions for the $wpdb global in DocBlocks all the places.
See #32246.


git-svn-id: https://develop.svn.wordpress.org/trunk@35170 602fd350-edb4-49c9-b593-d223f7449a82
2015-10-14 23:43:10 +00:00
Boone Gorges
ae96d16ed9 Remove dead code from WP_Query::lazyload_term_meta().
git-svn-id: https://develop.svn.wordpress.org/trunk@35111 602fd350-edb4-49c9-b593-d223f7449a82
2015-10-13 02:35:30 +00:00
John Blackbourn
d04e6dc919 Correct the @since doc for WP_Query::is_embed().
See #32522


git-svn-id: https://develop.svn.wordpress.org/trunk@35084 602fd350-edb4-49c9-b593-d223f7449a82
2015-10-12 22:12:42 +00:00
Boone Gorges
9c9cdf28ca Allow excluded keywords when searching posts.
Pass a keyword with a leading hyphen to exclude posts containing that keyword.
For example, 'taco -onions' will return posts that contain the word 'taco' but
do not contain the word 'onions'.

Props akibjorklund.
Fixes #33988.

git-svn-id: https://develop.svn.wordpress.org/trunk@34934 602fd350-edb4-49c9-b593-d223f7449a82
2015-10-08 03:17:22 +00:00
Gary Pendergast
43bd3d46c9 Embeds: Add oEmbed provider support.
For the past 6 years, WordPress has operated as an oEmbed consumer, allowing users to easily embed content from other sites. By adding oEmbed provider support, this allows any oEmbed consumer to embed posts from WordPress sites.

In addition to creating an oEmbed provider, WordPress' oEmbed consumer code has been enhanced to work with any site that provides oEmbed data (as long as it matches some strict security rules), and provides a preview from within the post editor.

For security, embeds appear within a sandboxed iframe - the iframe content is a template that can be styled or replaced entirely by the theme on the provider site.

Props swissspidy, pento, melchoyce, netweb, pfefferle, johnbillion, extendwings, davidbinda, danielbachhuber, SergeyBiryukov, afercia

Fixes #32522.



git-svn-id: https://develop.svn.wordpress.org/trunk@34903 602fd350-edb4-49c9-b593-d223f7449a82
2015-10-07 10:35:18 +00:00
John Blackbourn
e710e49fe0 Include post__in as a value available to the orderby parameter in the docs for WP_Query::parse_query().
See #32246


git-svn-id: https://develop.svn.wordpress.org/trunk@34836 602fd350-edb4-49c9-b593-d223f7449a82
2015-10-05 20:57:14 +00:00
Boone Gorges
da083f165d Remove search_terms from WP_Query doc block.
It's not actually a query param.

Introduced in [28887].

git-svn-id: https://develop.svn.wordpress.org/trunk@34795 602fd350-edb4-49c9-b593-d223f7449a82
2015-10-03 04:35:57 +00:00
Boone Gorges
d5fdd9084a Correct some WP_Query metadata lazyloading docs.
Props dlh.
Fixes #34047.

git-svn-id: https://develop.svn.wordpress.org/trunk@34732 602fd350-edb4-49c9-b593-d223f7449a82
2015-10-01 04:00:48 +00:00
Boone Gorges
27eb520f0c s/add_action()/add_filter() in WP_Query metadata lazyloading.
Props dlh.
See #34047.

git-svn-id: https://develop.svn.wordpress.org/trunk@34731 602fd350-edb4-49c9-b593-d223f7449a82
2015-10-01 04:00:41 +00:00
Boone Gorges
283c38c022 Improve lazyloading of comment meta in WP_Query loops.
Lazy-loading logic is moved to a method on `WP_Query`. This makes it possible
for comment feeds to take advantage of metadata lazyloading, in addition to
comments loaded via `comments_template()`.

This new technique parallels the termmeta lazyloading technique introduced in
[34704].

Fixes #34047.

git-svn-id: https://develop.svn.wordpress.org/trunk@34711 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-30 01:34:54 +00:00
Boone Gorges
e75f2c024f Improve lazyloading of term metadata in WP_Query loops.
[34529] introduced lazyloading for the metadata belonging to terms matching
posts in the main `WP_Query`. The current changeset improves this technique
in the following ways:

* Term meta lazyloading is now performed on the results of all `WP_Query` queries, not just the main query.
* Fewer global variable touches and greater encapsulation.
* The logic for looping through posts to identify terms is now only performed once per `WP_Query`.

Props dlh, boonebgorges.
See #34047.

git-svn-id: https://develop.svn.wordpress.org/trunk@34704 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-29 21:59:44 +00:00
Boone Gorges
49063d8e14 WP_Query should not ignore an offset of 0.
Props mazurstas.
Fixes #34060.

git-svn-id: https://develop.svn.wordpress.org/trunk@34697 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-29 19:36:16 +00:00
Gary Pendergast
ce14a63214 Permalinks: Add pretty permalinks for unattached attachments.
Previously, unattached attachments would have unsightly `/?attachment_id=1` URLs. As we've moved away from attachments being specifically attached to posts, instead being Media items, this has made the unattached URLs a more common occurrence.

We can breath easy once more, knowing that the world is a little bit safer from the horror of unnecessarily ugly URLs.

Props SergeyBiryukov, wonderboymusic, pento.

Fixes #1914.



git-svn-id: https://develop.svn.wordpress.org/trunk@34690 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-29 09:41:14 +00:00
Gary Pendergast
070b65dcfc Rewrite: Redirect attachment URLs when their slug changes.
Using the same logic that we use to redirect posts when their slug changes, we can provide the same functionality for attachments. Attachment pages are posts, too.

Props swissspdy.

Fixes #34043.



git-svn-id: https://develop.svn.wordpress.org/trunk@34685 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-29 04:57:02 +00:00
Gary Pendergast
6d87c4cecb Rewrite: When redirecting old slugs, include URL endpoints.
Historically, `wp_old_slug_redirect()` has only ever redirected the old slug of posts, it hasn't included URL endpoints, or worked with comment feed URLs. By adding support for these, we ensure a greater range of URLs aren't killed when the slug changes.

Props swissspdy.

Fixes #33920.



git-svn-id: https://develop.svn.wordpress.org/trunk@34659 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-28 06:56:54 +00:00
Drew Jaynes
057ba76b2c Docs: Add more explicit optional parameter types and return descriptions in the DocBlocks for is_page(), is_single(), is_singular().
Also adds explicit types and return descriptions to the corresponding `WP_Query` methods: `WP_Query::is_page()`, `WP_Query::is_single()`, and `WP_Query::is_singular()`.

Props Shelob9 for the initial patch.
Fixes #33907.


git-svn-id: https://develop.svn.wordpress.org/trunk@34502 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-24 16:17:23 +00:00
Scott Taylor
c34e94b693 Docs: is_main_query()'s _doing_it_wrong() notice suggests using WP_Query statically (WP_Query::is_main_query()). Use an alternate syntax: WP_Query->is_main_query(), to not confuse.
Props DrewAPicture, micahwave.
Fixes #25680.


git-svn-id: https://develop.svn.wordpress.org/trunk@34366 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-21 15:30:49 +00:00
Scott Taylor
191233f2f9 WP Query: Avoid using HTML tags in translation strings, add translator strings.
Props ramiy.	
Fixes #31868.


git-svn-id: https://develop.svn.wordpress.org/trunk@34345 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-20 03:03:28 +00:00
Drew Jaynes
12ce04a95e Docs: Add descriptions for $wp_query global phpDoc references in wp-includes/query.php, partially documented in [32620].
Fixes #32139.


git-svn-id: https://develop.svn.wordpress.org/trunk@34337 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-20 00:04:48 +00:00
Drew Jaynes
efc08d508e Docs: Fix some syntactical issues in the DocBlock for set_query_var().
Adds descriptions for the global `WP_Query` instance and the `$value` parameter.

See #32246.


git-svn-id: https://develop.svn.wordpress.org/trunk@34287 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-18 10:28:41 +00:00
Drew Jaynes
e889c2e647 Docs: Fix some syntactical issues in the documentation for get_queried_object_id().
Adds descriptions for the global `WP_Query` instance and the return.

See #32246.


git-svn-id: https://develop.svn.wordpress.org/trunk@34286 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-18 10:26:58 +00:00
Drew Jaynes
4706230535 Docs: Fix some syntactical isses in the DocBlock for get_queried_object().
Also add descriptions for the return and the `WP_Query` global.

See #32246.


git-svn-id: https://develop.svn.wordpress.org/trunk@34285 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-18 10:20:07 +00:00
Drew Jaynes
572e3ddafb Docs: Add documentation to get_query_var() and WP_Query::get() for the optional $default argument, introduced in 3.9 in [27304].
Props swissspidy.
Fixes #33856.


git-svn-id: https://develop.svn.wordpress.org/trunk@34284 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-18 09:40:51 +00:00
Scott Taylor
3ca5bbb585 Revert [33925], by-reference array manipulation is breaking comments in some themes.
This implementation is losing its shine.

See #16894.


git-svn-id: https://develop.svn.wordpress.org/trunk@34245 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-16 18:13:19 +00:00
Boone Gorges
4fdfdb6078 Use stricter sanitization for meta query clause keys.
By forcing all clause keys to be strings, we make it possible to use strict
comparison when validating values of 'orderby' as passed to `WP_Query`. This
eliminates situations where the presence of numeric clause keys could result
in an improperly validated 'orderby' value.

Props nikolov.tmw.
Fixes #32937.

git-svn-id: https://develop.svn.wordpress.org/trunk@34090 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-12 21:05:14 +00:00
Boone Gorges
dcbd8c6c3d Allow setup_postdata() to accept a post ID.
Previously, it accepted only a full post object.

Props sc0ttclark, mordauk, wonderboymusic.
Fixes #30970.

git-svn-id: https://develop.svn.wordpress.org/trunk@34089 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-12 20:57:06 +00:00
Boone Gorges
b7c8dbf4a2 Better default values in WP_Query::get_queried_object().
Setting the default value of the `queried_object_id` property to `0` meant
that, when called early enough in the WP bootstrap, `get_queried_object()`
could short-circuit the normal query by fooling it into thinking that the
request was for a page with id 0. Setting the default value to `null` instead
avoids this problem.

Props gradyetc, jazbek.
Fixes #31355.

git-svn-id: https://develop.svn.wordpress.org/trunk@34073 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-12 03:36:12 +00:00
Scott Taylor
38d374ab01 After [33891], get_comment() returns global $comment if no args are passed and the global is set (after setting the default to null here). This allows us to ditch global comment imports.
See #33638.


git-svn-id: https://develop.svn.wordpress.org/trunk@33963 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-09 02:50:43 +00:00
Scott Taylor
542ac152fc In wp_list_comments(), update the comment meta cache when the comments derive from WP_Query and the new ->comment_meta_cached prop is false.
There are no uses of `wp_list_comments()` in Core where `$comments` are passed as the 2nd argument.

Adds unit tests.

Props wonderboymusic, bradt.
Fixes #16894.


git-svn-id: https://develop.svn.wordpress.org/trunk@33925 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-05 22:24:16 +00:00
Scott Taylor
60ba8b05e4 Introduce WP_Comment class to model/strongly-type rows from the comments database table. Inclusion of this class is a pre-req for some more general comment cleanup and sanity.
* Takes inspiration from `WP_Post` and adds sanity to comment caching. 
* Clarifies when the current global value for `$comment` is returned. The current implementation in `get_comment()` introduces side effects and an occasion stale global value for `$comment` when comment caches are cleaned.
* Strongly-types `@param` docs
* This class is marked `final` for now

Props wonderboymusic, nacin.

See #32619.


git-svn-id: https://develop.svn.wordpress.org/trunk@33891 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-03 18:16:35 +00:00
Scott Taylor
3b8c5529cb foreach is a statement, not a function.
See #33491.


git-svn-id: https://develop.svn.wordpress.org/trunk@33734 602fd350-edb4-49c9-b593-d223f7449a82
2015-08-25 20:27:56 +00:00
Boone Gorges
32cd95e1c1 In WP_Query::parse_tax_query(), allow 'cat' and 'tag' querystrings to be formatted as arrays.
See [33095] #32454 for a previous fix related to custom taxonomies.

Props Veraxus.
Fixes #33532.

git-svn-id: https://develop.svn.wordpress.org/trunk@33724 602fd350-edb4-49c9-b593-d223f7449a82
2015-08-24 21:21:49 +00:00
Scott Taylor
dc577d6072 WP_Query: add changelog for the title param after [33706]
Props dimadin.
Fixes #33074.


git-svn-id: https://develop.svn.wordpress.org/trunk@33722 602fd350-edb4-49c9-b593-d223f7449a82
2015-08-24 20:09:25 +00:00
Scott Taylor
dc48f3d795 Query:
Add a query var, `title`, that allows you to query posts by `post_title`. To accomplish this now, you have to do something like:

{{{
$tacos = get_posts( [
  'post_type' => 'taco',
  's' => $name,
  'exact' => true,
  'sentence' => true,
  'post_status' => 'publish',
  'fields' => 'ids',
  'posts_per_page' => 1
] );
}}}

Adds unit tests.

Fixes #33074.


git-svn-id: https://develop.svn.wordpress.org/trunk@33706 602fd350-edb4-49c9-b593-d223f7449a82
2015-08-22 16:58:21 +00:00
Dominik Schilling (ocean90)
3b4c1e7dd6 WordPress 4.3 has just passed 2,222,222 downloads.
(Fix typo in [33653].)

git-svn-id: https://develop.svn.wordpress.org/trunk@33661 602fd350-edb4-49c9-b593-d223f7449a82
2015-08-20 15:59:30 +00:00
Boone Gorges
5e9a216cf7 Introduce post_name__in parameter for WP_Query.
Props enshrined.
Fixes #33065.

git-svn-id: https://develop.svn.wordpress.org/trunk@33653 602fd350-edb4-49c9-b593-d223f7449a82
2015-08-20 02:18:05 +00:00
Boone Gorges
53021ef6fe In WP_Query::parse_tax_query(), allow taxonomy querystring to be formatted as an array.
Props Veraxus.
Fixes #32454.

git-svn-id: https://develop.svn.wordpress.org/trunk@33095 602fd350-edb4-49c9-b593-d223f7449a82
2015-07-06 20:36:18 +00:00
Scott Taylor
d1675e2571 Add missing doc blocks to query.php.
Clarify `@return` values where necessary.
Some wrapper functions don't need to return if the function they wrap doesn't return.

See #32444.


git-svn-id: https://develop.svn.wordpress.org/trunk@32620 602fd350-edb4-49c9-b593-d223f7449a82
2015-05-27 18:14:08 +00:00
Dominik Schilling (ocean90)
b0d6757918 Use HTTPS URLs for codex.wordpress.org.
see #27115.

git-svn-id: https://develop.svn.wordpress.org/trunk@32116 602fd350-edb4-49c9-b593-d223f7449a82
2015-04-12 21:28:58 +00:00
Scott Taylor
2f20da29b5 Replace array_shift() with reset() where appropriate for performance.
Props SergeyBiryukov.
Fixes #31259.


git-svn-id: https://develop.svn.wordpress.org/trunk@31829 602fd350-edb4-49c9-b593-d223f7449a82
2015-03-19 03:55:39 +00:00
Boone Gorges
4138275df9 More careful type conversion in WP_Query is_*() methods.
`is_array( 1, '1-foo' )` returns true, which means that `is_page( 1 )`
was returning true when on a page with the slug '1-foo'. We avoid this odd
behavior by casting the queried object ID to a string before testing against
the value passed to the conditional function.

This also helps to avoid a problem where an arbitrary value for `$page` would
cause `is_page( $page )` to return true if the query had been manipulated by
a plugin to show that the current page's ID is 0.

Props boonebgorges, r-a-y, nunomorgadinho, wonderboymusic, clifgriffin.
Fixes #24674.

git-svn-id: https://develop.svn.wordpress.org/trunk@31458 602fd350-edb4-49c9-b593-d223f7449a82
2015-02-14 02:08:46 +00:00
Boone Gorges
bdda122e7f In WP_Query::get_queried_object(), avoid PHP notices when is_tax is paired with an empty tax_query.
It's possible to have an empty `tax_query` and `is_tax=true` when the initial
query contains a taxonomy var (and is processed as such during
`WP_Query::parse_query()`) but the taxonomy var is unset during a 'parse_query'
callback. While this kind of behavior is not necessarily something we need to
support, we should continue to avoid PHP notices in such cases, as we did prior
to WP 4.1.

Fixes #31246.

git-svn-id: https://develop.svn.wordpress.org/trunk@31366 602fd350-edb4-49c9-b593-d223f7449a82
2015-02-07 19:49:17 +00:00
Boone Gorges
0f28011bcf Modify `meta_query orderby syntax to use array keys as clause "handles".
The implementation of `meta_query` orderby introduced in [31312] put clause
identifiers into a 'name' parameter of the clause. For greater clarity, this
changeset updates the syntax to use the associative array key used when
defining `meta_query` parameters, instead of the 'name' parameter.

Props Funkatronic, DrewAPicture.
Fixes #31045.

git-svn-id: https://develop.svn.wordpress.org/trunk@31340 602fd350-edb4-49c9-b593-d223f7449a82
2015-02-05 19:37:47 +00:00
Sergey Biryukov
5e9b89bf59 When using WP_Query's 'fields' => 'ids' (or 'fields' => 'id=>parent'), make sure the returned result is always an array of integers.
fixes #31194. see #27252.

git-svn-id: https://develop.svn.wordpress.org/trunk@31324 602fd350-edb4-49c9-b593-d223f7449a82
2015-02-03 02:28:52 +00:00
Boone Gorges
5f6ea53e86 When querying for a specific post, allow posts with a non-public status to be returned as long as that status is specified.
This makes it possible to, for example, retrieve a specific post using the
`p` parameter of `WP_Query`, even if the post is in the Trash, by including
the `post_status=trash` parameter.

Props ebinnion.
Fixes #29167.

git-svn-id: https://develop.svn.wordpress.org/trunk@31321 602fd350-edb4-49c9-b593-d223f7449a82
2015-02-01 20:25:42 +00:00
Boone Gorges
2d737796d2 Improve support for ordering WP_Query results by postmeta.
`WP_Meta_Query` clauses now support a 'name' parameter. When building a
`WP_Query` object, the value of 'orderby' can reference this 'name', so that
it's possible to order by any clause in a meta_query, not just the first one
(as when using 'orderby=meta_value'). This improvement also makes it possible
to order by multiple meta query clauses (or by any other eligible field plus
a meta query clause), using the array syntax for 'orderby' introduced in [29027].

Props Funkatronic, boonebgorges.
Fixes #31045.

git-svn-id: https://develop.svn.wordpress.org/trunk@31312 602fd350-edb4-49c9-b593-d223f7449a82
2015-01-31 15:47:51 +00:00
Scott Taylor
1d3b42d226 Fix some erroneous @param annotations.
See #30799.


git-svn-id: https://develop.svn.wordpress.org/trunk@31219 602fd350-edb4-49c9-b593-d223f7449a82
2015-01-16 22:43:13 +00:00