Commit Graph

54 Commits

Author SHA1 Message Date
Boone Gorges
7f87a14808 Introduce publicly_queryable taxonomy argument.
Taxonomies registered as `publicly_queryable` can be queried as taxonomy
archives.

If not provided explicitly, the value of `publicly_queryable` is inherited
from `public`.

Props Chouby.
Fixes #34491.

git-svn-id: https://develop.svn.wordpress.org/trunk@36525 602fd350-edb4-49c9-b593-d223f7449a82
2016-02-13 03:50:37 +00:00
Drew Jaynes
8ae1899929 Docs: Add missing @access tags to DocBlocks for WP class methods and properties.
See #32246.


git-svn-id: https://develop.svn.wordpress.org/trunk@36365 602fd350-edb4-49c9-b593-d223f7449a82
2016-01-20 18:18:53 +00:00
Pascal Birchler
e50296de48 Query: Add a WP::remove_query_var() helper function.
This makes cleaning up public query vars easier.

Fixes #35234.

git-svn-id: https://develop.svn.wordpress.org/trunk@36177 602fd350-edb4-49c9-b593-d223f7449a82
2016-01-05 20:56:10 +00:00
Gary Pendergast
d6bf586de3 Query: Remove title from the public query vars list.
[33706] added `title` as a public query var, but there's not really a practical need for this, and it interferes with any plugin that uses `title` as a query var for itself.

Props tyxla.

Fixes #35115 for trunk.



git-svn-id: https://develop.svn.wordpress.org/trunk@36034 602fd350-edb4-49c9-b593-d223f7449a82
2015-12-21 00:42:43 +00:00
Pascal Birchler
ab8cff7827 In WP::handle_404(), make sure $wp_query->post is a WP_Post object before cloning it.
Props igmoweb for initial patch.
See #35013.

git-svn-id: https://develop.svn.wordpress.org/trunk@35994 602fd350-edb4-49c9-b593-d223f7449a82
2015-12-17 18:12:50 +00:00
John Blackbourn
c4cf5124ca Comments: The year is 2003. Permalinks are a new thing and everyone's using Blogger. It's a time when opening a modal window in JavaScript to view a section of a website is not a completely weird thing, although many users get annoyed by it. b2 has recently become WordPress, and with it comes a bunch of functionality that will become stale over the next decade, remnants of simpler times.
Twelve years later, after no fewer than three themes have intentionally implemented popup comments in their functionality, before being abandoned for at least the last six years, we've reached a time where we can put this era behind us. A time when we can remove comment popup functionality from WordPress.

If this breaks the internet, I'll eat my hat.

Fixes #28617


git-svn-id: https://develop.svn.wordpress.org/trunk@35848 602fd350-edb4-49c9-b593-d223f7449a82
2015-12-10 03:05:34 +00:00
Gary Pendergast
4832d8d933 Embeds: Who put this REST API infrastructure in my WordPress?
Well, while it's here, we probably should make use of it. The oEmbed endpoint now uses the REST API infrastructure, instead of providing its own.

Props swissspidy.

Fixes #34207.



git-svn-id: https://develop.svn.wordpress.org/trunk@35436 602fd350-edb4-49c9-b593-d223f7449a82
2015-10-29 22:50:13 +00:00
Boone Gorges
f492a81d70 Prevent non-public taxonomies from registering aquery var.
[34247] made the 'public' paramater of `register_taxonomy()` work by blocking
requests for non-public taxonomy archives during `parse_request()`. Blocking
taxonomy archive requests this late means that it's impossible to register an
independent query var that matches the slug of a non-public taxonomy. By
moving the block to `register_taxonomy()` - not allowing these taxonomies to
register their query vars in the first place - we free up the slug for other
use. In addition, we free up a bit of processing (no need to look for the query
var in `parse_request()` and better parallel the way non-public post types
work. See `register_post_type()`.

Non-public taxonomy archives that are requested using `?taxonomy=tax_name` are
still blocked during `parse_request`. It's only custom query vars -
`?tax_name=term` - that are affected by this change.

Props mboynes.
Fixes #21949.

git-svn-id: https://develop.svn.wordpress.org/trunk@35333 602fd350-edb4-49c9-b593-d223f7449a82
2015-10-21 16:53:51 +00:00
Sergey Biryukov
acce286d34 In WP::parse_request() and url_to_postid(), don't skip objects that have a post status with 'exclude_from_search' => false, e.g. inherit.
This fixes pretty permalinks for attachments, broken in [35195].

Fixes #21970.

git-svn-id: https://develop.svn.wordpress.org/trunk@35205 602fd350-edb4-49c9-b593-d223f7449a82
2015-10-15 17:52:36 +00:00
Sergey Biryukov
65390cd9cf In WP::parse_request() and url_to_postid(), if a post slug clashes with a trashed page, return the post instead of the page.
Props kovshenin, SergeyBiryukov, igmoweb.
Fixes #21970.

git-svn-id: https://develop.svn.wordpress.org/trunk@35195 602fd350-edb4-49c9-b593-d223f7449a82
2015-10-15 06:48: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
Drew Jaynes
b3f49e0cdf Docs: Fix some syntatical issues in the DocBlock for WP::send_headers() following [34632].
See #20226. See #32246.


git-svn-id: https://develop.svn.wordpress.org/trunk@34635 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-27 18:48:14 +00:00
Scott Taylor
f802fef76f Update the docs in WP to explain the need to do [34476].
Fixes #20226.


git-svn-id: https://develop.svn.wordpress.org/trunk@34632 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-27 18:27:15 +00:00
Scott Taylor
30554cccab After [34492], no need to import the global instance when we are, in fact, currently, that instance.
See #11694.


git-svn-id: https://develop.svn.wordpress.org/trunk@34494 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-24 14:19:03 +00:00
Scott Taylor
0111ecef55 Canonical/Rewrite: sanity check posts that are paged with <!--nextpage-->. Page numbers past the max number of pages are returning the last page of content and causing infinite duplicate content.
Awesome rewrite bug: the `page` query var was being set to `'/4'` in `$wp`. When cast to `int`, it returns `0` (Bless you, PHP). `WP_Query` calls `trim( $page, '/' )` when setting its own query var. The few places that were checking `page`	before posts were queried now have sanity checks, so that these changes work without flushing rewrites.	

Adds/updates unit tests.

Props wonderboymusic, dd32.
See #11694.


git-svn-id: https://develop.svn.wordpress.org/trunk@34492 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-24 14:03:05 +00:00
Scott Taylor
b9ad7136d7 WP: after [34443], calling get_queried_object() messes up unit tests. We can just clone the $post prop and call it a day.
Fixes #20226.


git-svn-id: https://develop.svn.wordpress.org/trunk@34476 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-24 03:53:39 +00:00
Scott Taylor
23c82a270b PINGBACKS: After [34442], switch to is_singular() to check attachments and pages as well.
See #20226.


git-svn-id: https://develop.svn.wordpress.org/trunk@34443 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-22 19:09:28 +00:00
Scott Taylor
e774c95266 PINGBACKS: rather than sending the X-Pingback HTTP header on every single request for fun, perhaps only send it on single posts with pings open.
See #20226.


git-svn-id: https://develop.svn.wordpress.org/trunk@34442 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-22 18:46:43 +00:00
Boone Gorges
302e3d1116 Allow taxonomies to be non-public.
[13216] introduced the 'public' argument for `register_taxonomy()`. This param
was used to set defaults for 'show_ui' and a number of other params, but it
never did anything itself.

With this changeset, taxonomies registered with `public=false` will no longer
be queryable on the front end, ie via taxonomy archive queries.

Props wpsmith, ocean90, nacin, ericlewis, boonebgorges.
Fixes #21949.

git-svn-id: https://develop.svn.wordpress.org/trunk@34247 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-16 19:04:57 +00:00
Scott Taylor
28426c041c In WP::parse_request(), don't add query vars of non-viewable post types to WP::public_query_vars. In register_post_type(), don't add query vars of non-viewable post types to WP::public_query_vars.
In `_unregister_post_type()` (unit tests), don't add query vars of non-viewable post types to `WP::public_query_vars`.

Adds unit test.

Fixes #30018.


git-svn-id: https://develop.svn.wordpress.org/trunk@34215 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-15 18:53:12 +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
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
Scott Taylor
8528ff2ab4 Ensure that feeds are served with the proper Content-Type HTTP header.
Props stevenkword.
Fixes #32024.


git-svn-id: https://develop.svn.wordpress.org/trunk@33658 602fd350-edb4-49c9-b593-d223f7449a82
2015-08-20 06:09:28 +00:00
Dominik Schilling (ocean90)
b3660e2731 Parse request: Quote regular expression characters in home path.
Adds unit tests.

props akirk.
fixes #30438.

git-svn-id: https://develop.svn.wordpress.org/trunk@32708 602fd350-edb4-49c9-b593-d223f7449a82
2015-06-08 13:28:44 +00:00
Boone Gorges
bb8999fb0e When parsing what appears to be a date archive request, check for a post with a clashing permalink before resolving to the archive.
A URL like `example.com/2015/05/15/` generally resolves to the May 15, 2015 date
archive. But in certain cases, it could also be the permalink of a post with
the slug `'2015'`. When a conflict of this sort is detected, resolve to the post
instead of the archive.

URL conflicts of this sort should no longer occur for new posts; see [32647].

Props valendesigns, boonebgorges, Denis-de-Bernardy.
Fixes #5305.

git-svn-id: https://develop.svn.wordpress.org/trunk@32648 602fd350-edb4-49c9-b593-d223f7449a82
2015-05-29 13:09:26 +00:00
Scott Taylor
7f62f34c8e Add missing doc blockss in class-wp.php.
See #32444.


git-svn-id: https://develop.svn.wordpress.org/trunk@32551 602fd350-edb4-49c9-b593-d223f7449a82
2015-05-22 20:04:38 +00:00
Scott Taylor
835dbe7baf [31210] broke Supportflow on dotorg, which declares these methods as protected. Switch to protected for the noop methods. The subclasses can make them more visible using public.
See #30799.


git-svn-id: https://develop.svn.wordpress.org/trunk@31211 602fd350-edb4-49c9-b593-d223f7449a82
2015-01-16 18:36:46 +00:00
Scott Taylor
14555b3af2 In WP_MatchesMapRegex:
* Exactly one method was made private in [28516], and is only used internally.
* 2 properties were made private, but they just store variables passed to the constructor.
* Instances of this class are never created in core. `WP_MatchesMapRegex::apply()` is called statically in `WP->parse_request()` and `url_to_postid()`. 

The chances that: 
1) this class is used as an instance somewhere and 
2) the properties that have always been marked `@access private` and begin with `_` were used publicly

...is extremely low.

Remove the magic methods, I should not have added them.

While we're at it, use the PHP5-style `__construct()` instead of the class name.

See #30891.


git-svn-id: https://develop.svn.wordpress.org/trunk@31136 602fd350-edb4-49c9-b593-d223f7449a82
2015-01-10 23:27:00 +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
Drew Jaynes (DrewAPicture)
18f101b4bf Using let's properly in inline comments lets us move on to more pressing matters of inline documentation.
Props trepmal.
Fixes #30570.


git-svn-id: https://develop.svn.wordpress.org/trunk@30703 602fd350-edb4-49c9-b593-d223f7449a82
2014-12-02 04:42:17 +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
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
168ed4764e Don't 404 for empty feeds.
fixes #18505.

git-svn-id: https://develop.svn.wordpress.org/trunk@29216 602fd350-edb4-49c9-b593-d223f7449a82
2014-07-17 22:21:37 +00:00
Drew Jaynes (DrewAPicture)
77467c3095 Fill out inline documentation for magic methods added to the WP_MatchesMapRegex class in [28516].
See #27881, #22234 and #28885.


git-svn-id: https://develop.svn.wordpress.org/trunk@29142 602fd350-edb4-49c9-b593-d223f7449a82
2014-07-13 23:38:55 +00:00
Scott Taylor
daecbc9659 Classes that have __set() also need __isset() and __unset().
See #27881, #22234.


git-svn-id: https://develop.svn.wordpress.org/trunk@28524 602fd350-edb4-49c9-b593-d223f7449a82
2014-05-19 06:51:35 +00:00
Scott Taylor
77c6420969 Some classes with __get() method also need __set().
See #27881, #22234.


git-svn-id: https://develop.svn.wordpress.org/trunk@28521 602fd350-edb4-49c9-b593-d223f7449a82
2014-05-19 06:31:00 +00:00
Scott Taylor
0e17651d7d Add missing access modifiers to methods in WP and WP_MatchesMapRegex. Add magic __call() and __get() methods to WP_MatchesMapRegex for BC.
See #27881, #22234.


git-svn-id: https://develop.svn.wordpress.org/trunk@28516 602fd350-edb4-49c9-b593-d223f7449a82
2014-05-19 06:11:34 +00:00
Andrew Nacin
9e29fa6ffd Add post_parent to the private query vars list. Fixes detached media queries.
props SergeyBiryukov.
fixes #27532.


git-svn-id: https://develop.svn.wordpress.org/trunk@27782 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-27 16:36:40 +00:00
Andrew Nacin
a4844038e2 Revert [27738] as the patient exhibited side effects. see #23862.
git-svn-id: https://develop.svn.wordpress.org/trunk@27768 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-27 01:30:34 +00:00
Andrew Nacin
0dea9b049f WP class: Remove duplication of the post_type query var, also specified as a public QV.
props prettyboymp.
fixes #23862.


git-svn-id: https://develop.svn.wordpress.org/trunk@27738 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-26 14:44:59 +00:00
Mark Jaquith
1d91296b3b Return 404 when querying author's posts who is not a member and has no posts on the site
fixes #20601. props yoavf, nacin, SergeyBiryukov, wonderboymusic, markjaquith.

git-svn-id: https://develop.svn.wordpress.org/trunk@27290 602fd350-edb4-49c9-b593-d223f7449a82
2014-02-26 18:11:36 +00:00
Dion Hulse
22738bc3d5 Remove the experimental RSS.JS feed, and move it to a plugin for feature development. Unprops pento. See #25639
git-svn-id: https://develop.svn.wordpress.org/trunk@26644 602fd350-edb4-49c9-b593-d223f7449a82
2013-12-04 22:23:02 +00:00
Andrew Nacin
555703dff2 Add an experimental rssjs feed based on the experimental rss.js spec.
This is simply a JSON representation of the RSS 2.0 feed, accessible at /feed/rssjs/ anywhere.

props pento.
see #25639.


git-svn-id: https://develop.svn.wordpress.org/trunk@26294 602fd350-edb4-49c9-b593-d223f7449a82
2013-11-20 22:57:09 +00:00
Scott Taylor
5321bc4957 WP_UnitTestCase::go_to() tried its best to clean up global space, but ultimately fell short. Because it was blowing away WP every time it was called, it was dropping all the query vars that were registered for custom taxonomies and custom post types (ouch).
Introduces `_cleanup_query_vars()`. This is a prerequisite for the unit tests on #20767. All unit tests pass with this change.

See #20767.
Fixes #25818.



git-svn-id: https://develop.svn.wordpress.org/trunk@26006 602fd350-edb4-49c9-b593-d223f7449a82
2013-11-04 22:46:44 +00:00
Sergey Biryukov
bc6c0c9b0f Correct @since values for various hooks. fixes #25766.
git-svn-id: https://develop.svn.wordpress.org/trunk@25991 602fd350-edb4-49c9-b593-d223f7449a82
2013-10-30 03:19:16 +00:00
Drew Jaynes
5f3883cc8f Revert another instance where a WP property was assigned to a one-time variable for inline docs purposes.
Referencing a non-existent variable only in the docs here would have been the better choice.

See #25495.


git-svn-id: https://develop.svn.wordpress.org/trunk@25946 602fd350-edb4-49c9-b593-d223f7449a82
2013-10-27 07:58:24 +00:00
Drew Jaynes
0969689efb Fix error introduced in [25940] where $public_query_vars should have only been used as a non-existent inline docs variable in the query_vars filter.
Restores `$this->public_query_vars` to the `query_vars` filter in wp-includes/class-wp.php.

Props mauryaratan.
Fixes #25495. See #25719.


git-svn-id: https://develop.svn.wordpress.org/trunk@25945 602fd350-edb4-49c9-b593-d223f7449a82
2013-10-27 07:48:34 +00:00
Drew Jaynes
421d906a59 Inline documentation for hooks in wp-includes/class-wp.php.
Props dougwollison.
Fixes #25495.


git-svn-id: https://develop.svn.wordpress.org/trunk@25940 602fd350-edb4-49c9-b593-d223f7449a82
2013-10-26 21:02:06 +00:00
Andrew Nacin
2dae159c6e Ensure wp::send_headers() detects a comments feed when permalinks are disabled and thus the withcomments QV is omitted. This fixes Last-Modified.
props sweetie089.
fixes #24622.


git-svn-id: https://develop.svn.wordpress.org/trunk@25683 602fd350-edb4-49c9-b593-d223f7449a82
2013-10-03 03:14:39 +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