Commit Graph

56 Commits

Author SHA1 Message Date
Sergey Biryukov
d19f4d7ff4 Docs: Add missing description for $wp_query and $wp_the_query globals.
Props mukesh27.
See #45604, #47110.

git-svn-id: https://develop.svn.wordpress.org/trunk@45739 602fd350-edb4-49c9-b593-d223f7449a82
2019-08-04 01:58:03 +00:00
Sergey Biryukov
9c1123fb26 Docs: Add missing description for $wp_rewrite global.
See #45604, #47110.

git-svn-id: https://develop.svn.wordpress.org/trunk@45735 602fd350-edb4-49c9-b593-d223f7449a82
2019-08-04 01:18:54 +00:00
SergeyBiryukov
cb1d21191d Docs: Add missing description for $wpdb, $wp_db_version, and $wp_current_db_version globals.
Props mukesh27, utsav72640, immeet94, SergeyBiryukov.
See #45604.

git-svn-id: https://develop.svn.wordpress.org/trunk@45734 602fd350-edb4-49c9-b593-d223f7449a82
2019-08-04 01:11:01 +00:00
Gary Pendergast
4503f93961 Coding Standards: Fix the Squiz.PHP.DisallowMultipleAssignments violations in wp-includes.
See #47632.



git-svn-id: https://develop.svn.wordpress.org/trunk@45590 602fd350-edb4-49c9-b593-d223f7449a82
2019-07-02 23:41:16 +00:00
Gary Pendergast
65e057daa2 Canonical: Ensure redirect query keys are URL encoded.
This prevents an infinite redirect loop when a request containing URL-encoded characters triggers `is_404()`.

Props soulseekah, wrwrwr0.
Fixes #43745.


git-svn-id: https://develop.svn.wordpress.org/trunk@45133 602fd350-edb4-49c9-b593-d223f7449a82
2019-04-08 01:09:01 +00:00
Gary Pendergast
a75d153eee Coding Standards: Upgrade WPCS to 1.0.0
WPCS 1.0.0 includes a bunch of new auto-fixers, which drops the number of coding standards issues across WordPress significantly. Prior to running the auto-fixers, there were 15,312 issues detected. With this commit, we now drop to 4,769 issues.

This change includes three notable additions:
- Multiline function calls must now put each parameter on a new line.
- Auto-formatting files is now part of the `grunt precommit` script. 
- Auto-fixable coding standards issues will now cause Travis failures.

Fixes #44600.



git-svn-id: https://develop.svn.wordpress.org/trunk@43571 602fd350-edb4-49c9-b593-d223f7449a82
2018-08-17 01:50:26 +00:00
Gary Pendergast
8f95800d52 Code is Poetry.
WordPress' code just... wasn't.
This is now dealt with.

Props jrf, pento, netweb, GaryJ, jdgrimes, westonruter, Greg Sherwood from PHPCS, and everyone who's ever contributed to WPCS and PHPCS.
Fixes #41057.



git-svn-id: https://develop.svn.wordpress.org/trunk@42343 602fd350-edb4-49c9-b593-d223f7449a82
2017-11-30 23:09:33 +00:00
Sergey Biryukov
18f91933fb Canonical: Strip trailing punctuation from permalinks.
Previously attempted in [40256], which caused the test for decoded curly quotes to fail in some environments.

`$_SERVER['REQUEST_URI']` contains the encoded URI, so this version removes the failing tests and only checks for encoded curly quotes.

Props joostdevalk, lancewillett, SergeyBiryukov.
Fixes #20383.

git-svn-id: https://develop.svn.wordpress.org/trunk@41991 602fd350-edb4-49c9-b593-d223f7449a82
2017-10-24 14:17:22 +00:00
Drew Jaynes
cbaa63caeb Canonical: Check first before attempting to include a 'path' value in the URL in strip_fragment_from_url().
Props Mte90.
Fixes #40542.


git-svn-id: https://develop.svn.wordpress.org/trunk@41257 602fd350-edb4-49c9-b593-d223f7449a82
2017-08-16 21:10:39 +00:00
Sergey Biryukov
b24850d038 Docs: Add a @global entry for $wp in redirect_canonical().
Props afzalmultani.
See #41238.

git-svn-id: https://develop.svn.wordpress.org/trunk@41003 602fd350-edb4-49c9-b593-d223f7449a82
2017-07-05 09:18:17 +00:00
Andrew Ozz
1d6af162c4 Revert [40256] for now as some tests are failing in some environments.
See #20383.

git-svn-id: https://develop.svn.wordpress.org/trunk@40661 602fd350-edb4-49c9-b593-d223f7449a82
2017-05-12 22:49:48 +00:00
Sergey Biryukov
8060823ff3 Canonical: Strip trailing punctuation from permalinks.
Props joostdevalk, lancewillett, SergeyBiryukov.
Fixes #20383.

git-svn-id: https://develop.svn.wordpress.org/trunk@40256 602fd350-edb4-49c9-b593-d223f7449a82
2017-03-09 20:04:17 +00:00
Boone Gorges
0bbd0f3a5f Improve category check in redirect_canonical() when permastruct contains category slug.
[37262] changed a check in `redirect_canonical()` so that it checked
categories in the object cache rather than querying the database. However,
the check was based on the identity of `WP_Term` objects, which in
certain cases can be augmented by the main WP query routine, causing
failures of the `in_array()` check. This caused unnecessary redirects
for URLs where `is_single()` is true, but the URL is different from the
post permalink, such as the `embed` endpoint.

`has_term()` also checks the cache, but does not sufer from this bug.

Props cmillerdev.
Fixes #36602.

git-svn-id: https://develop.svn.wordpress.org/trunk@38216 602fd350-edb4-49c9-b593-d223f7449a82
2016-08-08 18:48:53 +00:00
Drew Jaynes
3aad67fd48 Docs: Use the three-digit, x.x.x-style version in the DocBlock for the nested lowercase_octets() function.
See #32246. See #meta942.


git-svn-id: https://develop.svn.wordpress.org/trunk@38107 602fd350-edb4-49c9-b593-d223f7449a82
2016-07-19 19:33:31 +00:00
Drew Jaynes
5a286f7a1b Docs: Add a missing DocBlock for the lowercase_octets() function, which is nested within redirect_canonical().
Will be skipped from parsing.

See #32246. See #meta942.


git-svn-id: https://develop.svn.wordpress.org/trunk@38106 602fd350-edb4-49c9-b593-d223f7449a82
2016-07-19 19:31:31 +00:00
Drew Jaynes
d11f7ed391 Docs: Standardize filter docs in remaining wp-includes/* files to use third-person singular verbs per the inline documentation standards for PHP.
See #36913.


git-svn-id: https://develop.svn.wordpress.org/trunk@37518 602fd350-edb4-49c9-b593-d223f7449a82
2016-05-22 18:49:05 +00:00
Boone Gorges
33c1cd9c10 Canonical: Use get_the_terms() to verify that a post belongs to the requested %category%.
The `get_the_terms()` wrapper provides cache support, and saves a database hit
on sites with a persistent cache backend.

Props spacedmonkey.
Fixes #36602.

git-svn-id: https://develop.svn.wordpress.org/trunk@37262 602fd350-edb4-49c9-b593-d223f7449a82
2016-04-20 15:34:15 +00:00
Dion Hulse
3cce67f8bc Canonical: Generate the correct canonical url for paged posts/pages when they're used as the page_on_front.
This fixes an issue where pages become inacessible on a front page post.

Fixes #35344 for trunk.


git-svn-id: https://develop.svn.wordpress.org/trunk@36237 602fd350-edb4-49c9-b593-d223f7449a82
2016-01-09 07:32:42 +00:00
Drew Jaynes
df5f99d5e3 Docs: Add a missing summary, description, and @since version to the DocBlock for wp_redirect_admin_locations().
Introduced in [19880].

See #32246.


git-svn-id: https://develop.svn.wordpress.org/trunk@36010 602fd350-edb4-49c9-b593-d223f7449a82
2015-12-18 23:07:53 +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
Scott Taylor
12f4c30551 Canonical: introduce strip_fragment_from_url() and use when comparing URLs in redirect_canonical().
Props tellyworth.
Fixes #19918.


git-svn-id: https://develop.svn.wordpress.org/trunk@35770 602fd350-edb4-49c9-b593-d223f7449a82
2015-12-04 23:10:09 +00:00
Scott Taylor
d74ab4b6df Canonical: when /%post_id%/ is the permalink structure, don't redirect IDs that match Auto Drafts.
Props SergeyBiryukov.
Fixes #29431.


git-svn-id: https://develop.svn.wordpress.org/trunk@35480 602fd350-edb4-49c9-b593-d223f7449a82
2015-10-31 20:53:41 +00:00
Boone Gorges
e4b72ad5ca Don't force comment pagination.
[34561] instituted the policy of forcing pagination for comments. This strategy
was intended to avert problems when 'page_comments' is set to 0 - as it is by
default - and the number of comments on a given post rises into the hundreds or
thousands. By forcing pagination in all cases, we ensured that WordPress would
not time out by processing unwieldy numbers of comments on a given pageload.

The strategy proves problematic, however, because comment permalinks are
generated using the page of the comment. Forcing pagination for posts that
were not previously paginated would change the URL of all comments that do not
appear on the default comment page.

This changeset reintroduces the 'page_comments' setting and its corresponding
checkbox on Settings > Discussion. A number of tests, which were written after
[34561], are modified to work now that 'page_comments' will, once again, be
disabled by default.

See #8071.

git-svn-id: https://develop.svn.wordpress.org/trunk@35331 602fd350-edb4-49c9-b593-d223f7449a82
2015-10-21 16:25:31 +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
Scott Taylor
c28bc82d4b Canonical: remove unused code (commented-out) from redirect_canonical().
Props hakre, chriscct7.
Fixes #16934.


git-svn-id: https://develop.svn.wordpress.org/trunk@34734 602fd350-edb4-49c9-b593-d223f7449a82
2015-10-01 05:08:31 +00:00
Scott Taylor
813bff7bdb Canonical: after [34272], don't redirect rewrite endpoints on attachment URLs when pretty permalinks are enabled.
Fixes #19918.


git-svn-id: https://develop.svn.wordpress.org/trunk@34643 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-27 22:10:08 +00:00
Boone Gorges
0b7e8399b0 Force comment pagination on single posts.
Previously, the 'page_comments' toggle allowed users to disable comment
pagination. This toggle was only superficial, however. Even with
'page_comments' turned on, `comments_template()` loaded all of a post's
comments into memory, and passed them to `wp_list_comments()` and
`Walker_Comment`, the latter of which produced markup for only the
current page of comments. In other words, it was possible to enable
'page_comments', thereby showing only a subset of a post's comments on a given
page, but all comments continued to be loaded in the background. This technique
scaled poorly. Posts with hundreds or thousands of comments would load slowly,
or not at all, even when the 'comments_per_page' setting was set to a
reasonable number.

Recent changesets have addressed this problem through more efficient tree-
walking, better descendant caching, and more selective queries for top-level
post comments. The current changeset completes the project by addressing the
root issue: that loading a post causes all of its comments to be loaded too.

Here's the breakdown:

* Comment pagination is now forced. Setting 'page_comments' to false leads to evil things when you have many comments. If you want to avoid pagination, set 'comments_per_page' to something high.
* The 'page_comments' setting has been expunged from options-discussion.php, and from places in the codebase where it was referenced. For plugins relying on 'page_comments', we now force the value to `true` with a `pre_option` filter.
* `comments_template()` now queries for an appropriately small number of comments. Usually, this means the `comments_per_page` value.
* To preserve the current (odd) behavior for comment pagination links, some unholy hacks have been inserted into `comments_template()`. The ugliness is insulated in this function for backward compatibility and to minimize collateral damage. A side-effect is that, for certain settings of 'default_comments_page', up to 2x the value of `comments_per_page` might be fetched at a time.
* In support of these changes, a `$format` parameter has been added to `WP_Comment::get_children()`. This param allows you to request a flattened array of comment children, suitable for feeding into `Walker_Comment`.
* `WP_Query` loops are now informed about total available comment counts and comment pages by the `WP_Comment_Query` (`found_comments`, `max_num_pages`), instead of by `Walker_Comment`.

Aside from radical performance improvements in the case of a post with many
comments, this changeset fixes a bug that caused the first page of comments to
be partial (`found_comments` % `comments_per_page`), rather than the last, as
you'd expect.

Props boonebgorges, wonderboymusic.
Fixes #8071.

git-svn-id: https://develop.svn.wordpress.org/trunk@34561 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-25 20:39:18 +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
d416922cbf Remove some unused globals and/or their docs.
See ##33491.


git-svn-id: https://develop.svn.wordpress.org/trunk@34446 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-22 20:26:17 +00:00
Scott Taylor
2a4eba2eb8 Canonical: redirect URLs that match an attachment masked on the wrong URL to the attachment link for the matched attachment.
Props solarissmoke.
Fixes #19918.


git-svn-id: https://develop.svn.wordpress.org/trunk@34272 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-17 21:31:21 +00:00
John Blackbourn
1a352d56f9 Implement wp_login_url() and wp_registration_url() in places where wp-login.php is currently hard-coded.
See #31495
Props GregLone


git-svn-id: https://develop.svn.wordpress.org/trunk@34213 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-15 17:10:24 +00:00
Sergey Biryukov
923498aaa4 Avoid PHP notices in redirect_canonical() and _wp_menu_item_classes_by_context() if $_SERVER['HTTP_HOST'] is not set.
fixes #32229.

git-svn-id: https://develop.svn.wordpress.org/trunk@33775 602fd350-edb4-49c9-b593-d223f7449a82
2015-08-28 03:30:55 +00:00
Scott Taylor
39ef6a72c5 Use void instead of null where appropriate when pipe-delimiting @return types. If a @return only contains void, remove it.
See #32444.


git-svn-id: https://develop.svn.wordpress.org/trunk@32568 602fd350-edb4-49c9-b593-d223f7449a82
2015-05-24 05:39:47 +00:00
Scott Taylor
0864ba691a Add missing doc blocks for canonical.php.
See #32444.


git-svn-id: https://develop.svn.wordpress.org/trunk@32540 602fd350-edb4-49c9-b593-d223f7449a82
2015-05-22 04:25:27 +00:00
Scott Taylor
e501a4227c In canonical.php:
* Clarify some docs
* `redirect_canonical()` inconsistently returns `null` or `false` when bailing - can simply return.

See #32444.


git-svn-id: https://develop.svn.wordpress.org/trunk@32529 602fd350-edb4-49c9-b593-d223f7449a82
2015-05-21 20:29:19 +00:00
Gary Pendergast
182dd8606e If the URL being visited has non-breaking spaces at the end of it, they were probably inserted by an errant URL copy/paste. Instead of showing a 404 for no obvious reason, let's just trim them.
Fixes #31499



git-svn-id: https://develop.svn.wordpress.org/trunk@31838 602fd350-edb4-49c9-b593-d223f7449a82
2015-03-20 01:01:52 +00:00
Sergey Biryukov
5aac59d178 Replace hardcoded usage of comment-page with the comment pagination base.
props johnbillion, SergeyBiryukov, webord.
fixes #18084.

git-svn-id: https://develop.svn.wordpress.org/trunk@31459 602fd350-edb4-49c9-b593-d223f7449a82
2015-02-14 03:47:02 +00:00
Scott Taylor
865185903b There are some random add_action() and add_filter() calls littered around some files in wp-includes/. These should be moved to wp-includes/default-filters.php with the rest of the registered hooks. It seems like this was the best practice for awhile and then we randomly stopped. This file loads way before any of the includes, so the hooks will be registered for any request that loads WordPress, even SHORTINIT - a lot of the hooks registered won't run anyways (that's already the case).
See #30947.


git-svn-id: https://develop.svn.wordpress.org/trunk@31168 602fd350-edb4-49c9-b593-d223f7449a82
2015-01-12 16:39:39 +00:00
Scott Taylor
4d46475b3d Improve various @param docs for src/wp-includes/*.
See #30224.


git-svn-id: https://develop.svn.wordpress.org/trunk@30681 602fd350-edb4-49c9-b593-d223f7449a82
2014-12-01 01:33:34 +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
John Blackbourn
1767706fc2 Revert [28610] in order to avoid infinite redirect loops on reverse proxies which proxy from HTTPS to HTTP. This will be revisited at some point, possibly as an option via a filter.
Fixes #28610.


git-svn-id: https://develop.svn.wordpress.org/trunk@30090 602fd350-edb4-49c9-b593-d223f7449a82
2014-10-29 18:36:41 +00:00
Boone Gorges
c995866623 Support nested tax query syntax in redirect_canonical().
The proper place to look for a list of queried terms is in the flat
queried_terms array, not in tax_query->queries.

See #29738.

git-svn-id: https://develop.svn.wordpress.org/trunk@29901 602fd350-edb4-49c9-b593-d223f7449a82
2014-10-15 15:42:45 +00:00
Mark Jaquith
be8a0c6f89 Use HTTPS URLs for trac.wordpress.org (and use core.trac.wordpress.org)
see #27115

git-svn-id: https://develop.svn.wordpress.org/trunk@29789 602fd350-edb4-49c9-b593-d223f7449a82
2014-09-29 13:36:38 +00:00
Andrew Nacin
7c09b36829 Canonical: Apply redirects to HEAD requests too. Adjusts [28958].
props SergeyBiryukov.
fixes #27498.


git-svn-id: https://develop.svn.wordpress.org/trunk@29663 602fd350-edb4-49c9-b593-d223f7449a82
2014-09-02 04:47:14 +00:00
Sergey Biryukov
ec0e2beebb Canonical redirects should only be applied for GET requests.
props c.axelsson.
fixes #27498.

git-svn-id: https://develop.svn.wordpress.org/trunk@28958 602fd350-edb4-49c9-b593-d223f7449a82
2014-07-02 14:10:07 +00:00
Sergey Biryukov
4e56aa8da0 Replace a redundant ! is_preview() check with a more appropriate one.
fixes #20496.

git-svn-id: https://develop.svn.wordpress.org/trunk@28928 602fd350-edb4-49c9-b593-d223f7449a82
2014-06-30 17:18:23 +00:00
Sergey Biryukov
34ed4c44f5 Fix typo in a comment.
props JustinSainton.
see #20496.

git-svn-id: https://develop.svn.wordpress.org/trunk@28878 602fd350-edb4-49c9-b593-d223f7449a82
2014-06-28 03:29:10 +00:00
Scott Taylor
e8f2862421 Perform a canonical redirect for posts that are published but are visited at a ?p=123&preview=true URL.
Props amit, joostdevalk.
Fixes #20496.


git-svn-id: https://develop.svn.wordpress.org/trunk@28874 602fd350-edb4-49c9-b593-d223f7449a82
2014-06-28 02:12:19 +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
Andrew Nacin
e317e5454a Force SSL on the frontend via canonical when the home URL uses the https scheme.
fixes #27954.


git-svn-id: https://develop.svn.wordpress.org/trunk@28610 602fd350-edb4-49c9-b593-d223f7449a82
2014-05-29 04:12:05 +00:00