Commit Graph

42561 Commits

Author SHA1 Message Date
Sergey Biryukov 2c843f03d5 Coding Standards: Use strict comparison in `wp-admin/includes/class-wp-plugin-install-list-table.php`.
See #50767.

git-svn-id: https://develop.svn.wordpress.org/trunk@48970 602fd350-edb4-49c9-b593-d223f7449a82
2020-09-11 01:03:54 +00:00
Helen Hou-Sandi b8e4f37a57 REST API: Include attribute name in schema validation error message.
Props bobbingwide.
Fixes #51231.


git-svn-id: https://develop.svn.wordpress.org/trunk@48969 602fd350-edb4-49c9-b593-d223f7449a82
2020-09-10 16:32:52 +00:00
Sergey Biryukov c0570b1398 Coding Standards: Use strict comparison in `wp-admin/includes/class-wp-plugins-list-table.php`.
See #50767.

git-svn-id: https://develop.svn.wordpress.org/trunk@48968 602fd350-edb4-49c9-b593-d223f7449a82
2020-09-10 14:20:08 +00:00
Sergey Biryukov 54f62fc234 Coding Standards: Use strict comparison in `wp-admin/includes/class-wp-ms-themes-list-table.php`.
See #50767.

git-svn-id: https://develop.svn.wordpress.org/trunk@48967 602fd350-edb4-49c9-b593-d223f7449a82
2020-09-10 14:19:35 +00:00
John Blackbourn db9a91a2a8 Posts, Post Types: Don't output the adjacent posts `rel` link by default.
This has a considerable performance impact on sites which don't otherwise show previous and next post links, and has no SEO benefit.

Props joostdevalk, swissspidy, johnbillion

Fixes #39111

git-svn-id: https://develop.svn.wordpress.org/trunk@48966 602fd350-edb4-49c9-b593-d223f7449a82
2020-09-09 21:32:07 +00:00
Helen Hou-Sandi 19bdc1e3f9 Privacy: Remove extraneous colon from settings screen.
Props vinita29, garrett-eclipse.
Fixes #50414.


git-svn-id: https://develop.svn.wordpress.org/trunk@48965 602fd350-edb4-49c9-b593-d223f7449a82
2020-09-09 19:41:07 +00:00
Jonathan Desrosiers 0548043076 Site Health: Allow attachments to be added to recovery mode emails.
The `wp_mail()` function has the ability to add attachments to emails. There is currently no way to add attachments to the recovery mode email sent out to site admins when a PHP error is encountered on their site.

This change adds that ability through the use of the `recovery_mode_email` filter, allowing developers to use the full capabilities of `wp_mail()`.

Props desrosj, timothyblynjacobs.
Fixes #51276.

git-svn-id: https://develop.svn.wordpress.org/trunk@48964 602fd350-edb4-49c9-b593-d223f7449a82
2020-09-09 16:19:33 +00:00
Jonathan Desrosiers 2c6df53917 Administration: Add the `aria-hidden` attribute to admin menu icons.
The admin menu icons are included as a visual element to support the text links. Without the `aria-hidden=“true”` attribute, they are also exposed to assistive technologies (which can process icon fonts in unpredictable ways).

This change improves the experience for multiple types of assistive technologies, including screen reading and voice control software. With `aria-hidden=“true”` added, the icons will not be read, and a user can now trigger a click of a top level admin menu item with commands such as “click posts”, or “click plugins”.

Props joedolson, afercia, audrasjb, adriantirusli.
Fixes #51012.

git-svn-id: https://develop.svn.wordpress.org/trunk@48963 602fd350-edb4-49c9-b593-d223f7449a82
2020-09-09 16:13:17 +00:00
Jonathan Desrosiers 506c46593b Docs: Improve the `recovery_mode_email` inline docs.
See #51267, #50768.

git-svn-id: https://develop.svn.wordpress.org/trunk@48962 602fd350-edb4-49c9-b593-d223f7449a82
2020-09-09 15:46:30 +00:00
Sergey Biryukov 875acd7b37 Code Modernization: Remove unnecessary reference sign from `get_comment()` definition.
This fixes a PHP 8 "argument must be passed by reference, value given" error when using `array_map( 'get_comment', ... )`.

Object variables in PHP 5+ contain a reference to the object, and it's the reference that's passed around.

Note: This reverts [48838], which is now redundant.

Follow-up to a similar change for `get_post()` in [21572].

See #50913.

git-svn-id: https://develop.svn.wordpress.org/trunk@48961 602fd350-edb4-49c9-b593-d223f7449a82
2020-09-09 03:53:50 +00:00
Sergey Biryukov f6f117a0a9 Code Modernization: Correct the check for negative post IDs in `WP_Query::parse_query()` to work as expected on PHP 8.
PHP 8 changes the way string to number comparisons are performed: https://wiki.php.net/rfc/string_to_number_comparison

In particular, checking if an empty string is less than zero in PHP 8 evaluates to `true`, not `false`.

For `WP_Query`, this resulted in unintentionally returning a 404 error for most of front-end requests, instead of the relevant content.

By explicitly casting the value to `int`, we make sure to compare both values as numbers, rather than a string and a number.

Follow-up to [38288].

Props trepmal.
See #50913.

git-svn-id: https://develop.svn.wordpress.org/trunk@48960 602fd350-edb4-49c9-b593-d223f7449a82
2020-09-09 02:33:22 +00:00
Sergey Biryukov 427d72c8a1 Comments: Check if a valid comment ID was passed when editing a comment.
This avoids a PHP notice after submitting the Edit Comment form.

Props regan.khadgi.
Fixes #51263.

git-svn-id: https://develop.svn.wordpress.org/trunk@48958 602fd350-edb4-49c9-b593-d223f7449a82
2020-09-08 13:39:41 +00:00
Sergey Biryukov 92bf360a03 Build/Test Tools: Allow unit tests to run on PHP 8 in full.
PHP 8 introduces a new control structure called `match`, which makes `match` a reserved keyword in PHP 8.

One of the PHPUnit dependencies declares a class named `Match`, which triggered a fatal error before PHPUnit could even start.

To be able to use PHPUnit 7.x on PHP 8 and run the tests, core needs a new version of that dependency, which is now installed using Composer.

This is the simplest way to get things working again and start addressing the individual test failures.

Additionally, various test runs on PHP 8 on Travis are now performed individually instead of being chained, so that failures outside of WP scope don't block further execution.

Props jrf, jorbin, pento.
See #50902.

git-svn-id: https://develop.svn.wordpress.org/trunk@48957 602fd350-edb4-49c9-b593-d223f7449a82
2020-09-07 19:21:26 +00:00
Sergey Biryukov a85d190b00 Tests: Replace a few instances of `assertNotEquals()` with `assertNotFalse()`.
See #38266.

git-svn-id: https://develop.svn.wordpress.org/trunk@48954 602fd350-edb4-49c9-b593-d223f7449a82
2020-09-07 04:11:54 +00:00
Sergey Biryukov 3a9e78c000 Tests: Remove the polyfill for `assertNotFalse()`.
`assertNotFalse()` is available in PHPUnit since version 4.0.

The polyfill was introduced back when WordPress still supported PHP 5.2 and PHPUnit 3.6.x, and is now redundant.

Follow-up to [39919], [45058], [47880].

See #38266.

git-svn-id: https://develop.svn.wordpress.org/trunk@48953 602fd350-edb4-49c9-b593-d223f7449a82
2020-09-07 03:26:24 +00:00
Sergey Biryukov 5bad67bccf Tests: Add a polyfill for `assertEqualsWithDelta()` to `WP_UnitTestCase` and use it where appropriate.
`assertEqualsWithDelta()` was added in PHPUnit 7.5, while WordPress still supports PHPUnit 5.4.x as the minimum version.

See #38266.

git-svn-id: https://develop.svn.wordpress.org/trunk@48952 602fd350-edb4-49c9-b593-d223f7449a82
2020-09-07 03:12:17 +00:00
Timothy Jacobs 84d524e189 REST API: Extract `WP_REST_Controller::get_endpoint_args_for_item_schema()` to a standalone function.
This method is useful whenever a JSON Schema needs to be converted to a format suitable for argument validation with `WP_REST_Request`. Moving the logic into a standalone function allows developers to use it outside of the `WP_REST_Controller` context.

Props pentatonicfunk.
Fixes #50876. 


git-svn-id: https://develop.svn.wordpress.org/trunk@48951 602fd350-edb4-49c9-b593-d223f7449a82
2020-09-07 02:35:52 +00:00
Sergey Biryukov 83f23c4c4f Tests: Add a test case for storing `false` in the cache.
Follow-up to [20089], [48949].

See #38266.

git-svn-id: https://develop.svn.wordpress.org/trunk@48950 602fd350-edb4-49c9-b593-d223f7449a82
2020-09-06 04:23:46 +00:00
Sergey Biryukov 944a6845a2 Tests: Correct assertion in `Tests_Cache::test_add_get_null()`.
It is possible to store `null` in the cache without it being converted to an empty string.

Follow-up to [20089].

Props johnbillion, SergeyBiryukov.
See #38266.

git-svn-id: https://develop.svn.wordpress.org/trunk@48949 602fd350-edb4-49c9-b593-d223f7449a82
2020-09-06 03:35:59 +00:00
Sergey Biryukov 6f07ff569b Tests: Correct assertion in `Tests_Cache::test_miss()`.
On failure to retrieve contents, `WP_Object_Cache::get()` returns `false`, not `null`.

The test only passed accidentally due to `assertEquals()` not performing a strict type check.

Props johnbillion.
See #38266.

git-svn-id: https://develop.svn.wordpress.org/trunk@48948 602fd350-edb4-49c9-b593-d223f7449a82
2020-09-06 02:51:45 +00:00
Timothy Jacobs d803f6bf82 REST API: Refactor `WP_REST_Server::dispatch()` to make internal logic reusable.
#50244 aims to introduce batch processing in the REST API. An important feature is the ability to enforce that all requests have valid data before executing the route callbacks in "pre-validate" mode.

This necessitates splitting `WP_REST_Server::dispatch()` into two methods so the batch controller can determine the request handler to perform pre-validation and then respond to the requests.

The two new methods, `match_request_to_handler` and `respond_to_request`, have a public visibility, but are marked as `@access private`. This is to allow for iteration on the batch controller to happen in the Gutenberg repository. Developers should not rely upon these methods, their visibility may change in the future.

See #50244.
Props andraganescu, zieladam, TimothyBlynJacobs.


git-svn-id: https://develop.svn.wordpress.org/trunk@48947 602fd350-edb4-49c9-b593-d223f7449a82
2020-09-05 21:50:31 +00:00
Sergey Biryukov 1c1a7b8365 Media: In `wp_ajax_image_editor()`, check if the `error` property exists before accessing it.
This avoids a PHP notice when editing an image.

Follow-up to [48375].

Props Mista-Flo.
Fixes #51251.

git-svn-id: https://develop.svn.wordpress.org/trunk@48946 602fd350-edb4-49c9-b593-d223f7449a82
2020-09-05 18:10:47 +00:00
Timothy Jacobs 88ec90d6df REST API: Support a route-level validation callback.
Most request data is validated on a per-parameter basis. Often, however, additional validation is needed that operates on the entire request object. Currently, this is done in the route callback and often in the `prepare_item_for_database` method specifically.

#50244 aims to introduce batch processing in the REST API. An important feature is the ability to enforce that all requests have valid data before executing the route callbacks in "pre-validate" mode.

This patch introduces support for calling a `validate_callback` after all parameter validation has succeeded. That allows moving more validation outside of the route callback and into `WP_REST_Request` which will improve "pre-validate" support.

Props TimothyBlynJacobs, zieladam.
Fixes #51255.
See #50244.




git-svn-id: https://develop.svn.wordpress.org/trunk@48945 602fd350-edb4-49c9-b593-d223f7449a82
2020-09-05 18:07:46 +00:00
Sergey Biryukov af437fcdc4 Tests: Replace a few more instances of `assertEquals()` with `assertSame()`.
These were previously missed due to incorrect capitalization.

Follow-up to [48937], [48939], [48940].

See #38266.

git-svn-id: https://develop.svn.wordpress.org/trunk@48944 602fd350-edb4-49c9-b593-d223f7449a82
2020-09-05 16:47:50 +00:00
Sergey Biryukov 677af117a9 Comments: Rename `WP_Comments_List_Table::comment_status_dropdown()` to `::comment_type_dropdown()`.
This better reflects the purpose of the method, which doesn't have anything to do with a comment status.

Follow-up to [48521].

Props davidbaumwald, johnbillion, SergeyBiryukov.
Fixes #51248.

git-svn-id: https://develop.svn.wordpress.org/trunk@48943 602fd350-edb4-49c9-b593-d223f7449a82
2020-09-05 00:31:03 +00:00
Sergey Biryukov 267e754b83 Docs: Further correct placement for `wp_editor_expand` filter DocBlock.
This ensures that the filter is only applied if the conditions before it are evaluated to true.

Follow-up to [48714].

Props johnbillion.
See #50768.

git-svn-id: https://develop.svn.wordpress.org/trunk@48942 602fd350-edb4-49c9-b593-d223f7449a82
2020-09-04 21:46:11 +00:00
John Blackbourn d34a21c950 Docs: Various docblock corrections and improvements.
See #50768

git-svn-id: https://develop.svn.wordpress.org/trunk@48941 602fd350-edb4-49c9-b593-d223f7449a82
2020-09-04 20:39:47 +00:00
Sergey Biryukov 3e111d9799 Tests: Replace a few more instances of `assertEquals()` with `assertSame()`.
These were previously missed due to incorrect capitalization.

Follow-up to [48937], [48939].

See #38266.

git-svn-id: https://develop.svn.wordpress.org/trunk@48940 602fd350-edb4-49c9-b593-d223f7449a82
2020-09-04 07:36:33 +00:00
Sergey Biryukov 8be943d06e Tests: Introduce `assertSameSets()` and `assertSameSetsWithIndex()`, and use them where appropriate.
This ensures that not only the array values being compared are equal, but also that their type is the same.

These new methods replace most of the existing instances of `assertEqualSets()` and `assertEqualSetsWithIndex()`.

Going forward, stricter type checking by using `assertSameSets()` or `assertSameSetsWithIndex()` should generally be preferred, to make the tests more reliable.

Follow-up to [48937].

See #38266.

git-svn-id: https://develop.svn.wordpress.org/trunk@48939 602fd350-edb4-49c9-b593-d223f7449a82
2020-09-04 07:01:00 +00:00
Sergey Biryukov 5e2a75ef29 Administration: Give the `$error` variable in `wp-admin/admin-header.php` a more descriptive name.
This avoids a conflict with the same global variable used elsewhere, e.g. in Theme Editor.

Follow-up to [48850].

Props vinayak.anivase.
Fixes #51219.

git-svn-id: https://develop.svn.wordpress.org/trunk@48938 602fd350-edb4-49c9-b593-d223f7449a82
2020-09-03 01:41:47 +00:00
Sergey Biryukov 164b22cf6a Tests: First pass at using `assertSame()` instead of `assertEquals()` in most of the unit tests.
This ensures that not only the return values match the expected results, but also that their type is the same.

Going forward, stricter type checking by using `assertSame()` should generally be preferred to `assertEquals()` where appropriate, to make the tests more reliable.

Props johnbillion, jrf, SergeyBiryukov.
See #38266.

git-svn-id: https://develop.svn.wordpress.org/trunk@48937 602fd350-edb4-49c9-b593-d223f7449a82
2020-09-02 00:35:36 +00:00
Sergey Biryukov ba7c6a2d5f General: Set `svn:eol-style` for `phpunit/includes/normalize-xml.xsl`.
Follow-up to [48072], [48845].

See #51113.

git-svn-id: https://develop.svn.wordpress.org/trunk@48931 602fd350-edb4-49c9-b593-d223f7449a82
2020-09-01 16:48:06 +00:00
Sergey Biryukov 46722379b2 General: Correct reversed `svn:auto-props` for `.mo` and `.po` files.
* `.mo` files are binary and should have `svn:mime-type=application/octet-stream`.
* `.po` files are text and should have `svn:eol-style=native`, same as `.pot` files.

Follow-up to [46636], [48845].

See #51113.

git-svn-id: https://develop.svn.wordpress.org/trunk@48930 602fd350-edb4-49c9-b593-d223f7449a82
2020-09-01 16:39:00 +00:00
Sergey Biryukov 5f4a8f75b5 Docs: Synchronize the description of the `$format` parameter in various date/time functions for posts and comments.
See #50768.

git-svn-id: https://develop.svn.wordpress.org/trunk@48929 602fd350-edb4-49c9-b593-d223f7449a82
2020-09-01 00:41:19 +00:00
Sergey Biryukov 699e44cc76 Tests: Move the tests for `get_the_modified_time()` to a more appropriate place.
Add some new tests to better cover the functionality, for consistency with `get_the_date()` and `get_the_time()`.

Follow-up to [48911], [48912], [48918].

Props wittich.
Fixes #51184.

git-svn-id: https://develop.svn.wordpress.org/trunk@48924 602fd350-edb4-49c9-b593-d223f7449a82
2020-08-31 22:41:02 +00:00
Sergey Biryukov 23528d419a Script Loader: Add backward compatibility for JavaScript i18n globals and properties deprecated in WordPress 5.5.
The recommended approach for any plugins using these globals or properties is to switch to the newer `wp.i18n` functions.

In the meantime, this ensures that accessing any of these globals does not break the rest of the code on the page, and an appropriate warning message is logged to the JavaScript console.

Follow-up to: https://core.trac.wordpress.org/query?summary=~wp.i18n&milestone=5.5

Props omarreiss, peterwilsoncc, kbjohnson90, johnbillion, TimothyBlynJacobs, joostdevalk, ocean90, desrosj, SergeyBiryukov.
Fixes #51123.

git-svn-id: https://develop.svn.wordpress.org/trunk@48923 602fd350-edb4-49c9-b593-d223f7449a82
2020-08-31 20:28:41 +00:00
Sergey Biryukov d33fa375f6 Date/Time: In `get_the_date()` and related functions, pass the original, unmodified `$format` value to the filters.
Additionally, simplify the `$format` argument checks for consistency with similar checks in `get_the_modified_date()` and `get_the_modified_time()`.

Follow-up to [48912].

Props Rarst.
See #51184.

git-svn-id: https://develop.svn.wordpress.org/trunk@48918 602fd350-edb4-49c9-b593-d223f7449a82
2020-08-31 18:28:42 +00:00
Sergey Biryukov 390f84b715 Themes: Normalize the installed theme path in `Theme_Installer_Skin::do_overwrite()` before comparing with the uploaded theme.
This ensures that the data for the currently installed theme is picked up properly when uploading a theme update on Windows.

Follow-up to [48390].

Props bobbingwide, wpamitkumar, mukesh27.
Fixes #51182.

git-svn-id: https://develop.svn.wordpress.org/trunk@48913 602fd350-edb4-49c9-b593-d223f7449a82
2020-08-31 17:09:35 +00:00
Sergey Biryukov 3309309f6b Date/Time: Make sure `get_the_date()` and related functions return correct time if the format was specified as `false`.
Technically, the `$format` argument should always be a string, but passing `false` used to work before [47808], so this restores backward compatibility.

The list of affected functions:
* `get_the_date()`
* `get_the_time()`
* `get_comment_date()`
* `get_comment_time()`

Props wittich, Rarst, akabarikalpesh, SergeyBiryukov.
Fixes #51184.

git-svn-id: https://develop.svn.wordpress.org/trunk@48912 602fd350-edb4-49c9-b593-d223f7449a82
2020-08-31 15:56:41 +00:00
Sergey Biryukov 34dc1cc2c9 Tests: Bring some consistency to Date/Time tests:
* Move some tests from `post.php` to a more appropriate location in the `date` directory.
* Rename `date/postTime.php` to `date/getPostTime.php` to match the function name.

Props Rarst.
See #51184.

git-svn-id: https://develop.svn.wordpress.org/trunk@48911 602fd350-edb4-49c9-b593-d223f7449a82
2020-08-31 15:33:45 +00:00
Sergey Biryukov c2aaa14d57 Docs: Add a `@since` note to the `display_post_states` filter to clarify that it is now also applied in the Customizer context.
If any admin functions are used within the filter, their existence should be checked with `function_exists()` before being used.

Follow-up to [47763], [48620].

Props audrasjb, garrett-eclipse, Howdy_McGee, dlh, khag7, SergeyBiryukov.
Fixes #51081.

git-svn-id: https://develop.svn.wordpress.org/trunk@48910 602fd350-edb4-49c9-b593-d223f7449a82
2020-08-31 13:30:20 +00:00
Sergey Biryukov 812f49ae05 Docs: Clarify the usage of `null` for `auto_update_{$type}` filter.
The value is internally used to detect whether nothing has hooked into this filter.

Props audrasjb, pbiron, johnbillion, SergeyBiryukov.
Fixes #50848.

git-svn-id: https://develop.svn.wordpress.org/trunk@48909 602fd350-edb4-49c9-b593-d223f7449a82
2020-08-31 13:18:39 +00:00
Sergey Biryukov d841231933 Tests: Reset the `$wp_sitemap` global after each test, so that sitemaps are re-initialized when the next test runs.
This ensures consistent results in query var tests, regardless of whether they are run in isolation or as part of a larger group of tests.

Props pbiron, peterwilsoncc.
Fixes #51154.

git-svn-id: https://develop.svn.wordpress.org/trunk@48908 602fd350-edb4-49c9-b593-d223f7449a82
2020-08-31 03:57:50 +00:00
Sergey Biryukov 73375c4b32 Tests: Move the tests for `selected()` and `checked()` to a more appropriate place.
Convert the tests to use data providers.

Props wittich.
Fixes #51166.

git-svn-id: https://develop.svn.wordpress.org/trunk@48907 602fd350-edb4-49c9-b593-d223f7449a82
2020-08-30 01:34:38 +00:00
Sergey Biryukov 5ec12d64d6 Administration: Correct the padding for "Warning: these pages should not be the same" messages on Reading Settings screen.
Replace the legacy `.error` class with a more appropriate `.notice-warning`.

Props musicaljoeker, shital-patel, man4toman, garrett-eclipse, SergeyBiryukov.
Fixes #50766.

git-svn-id: https://develop.svn.wordpress.org/trunk@48906 602fd350-edb4-49c9-b593-d223f7449a82
2020-08-29 00:41:00 +00:00
Sergey Biryukov 0013f5979c Media: Make the `is_gd_image()` function available on front end.
This avoids a fatal error if a plugin calls image creation or editing functions like `wp_imagecreatetruecolor()` outside of the admin.

Follow-up to [48798]

Props BackuPs.
Fixes #51174. See #50833.

git-svn-id: https://develop.svn.wordpress.org/trunk@48905 602fd350-edb4-49c9-b593-d223f7449a82
2020-08-28 16:43:31 +00:00
Sergey Biryukov 673fcd7927 Comments: Check if reply heading text node exists before accessing its property in `comment-reply.js`.
Follow-up to [47506], [48876].

Props johannadevos, mailnew2ster.
Fixes #38009.

git-svn-id: https://develop.svn.wordpress.org/trunk@48904 602fd350-edb4-49c9-b593-d223f7449a82
2020-08-28 13:10:29 +00:00
Sergey Biryukov 2afabce1c1 Docs: Correct formatting of the `auto_theme_update_send_email` filter DocBlock.
Synchronize description of the `$enabled` parameter with the `auto_plugin_update_send_email` filter.

Follow-up to [48889].

See #50768, #50988.

git-svn-id: https://develop.svn.wordpress.org/trunk@48903 602fd350-edb4-49c9-b593-d223f7449a82
2020-08-28 02:36:39 +00:00
Sergey Biryukov bb40a2698a Upgrade/Install: Only display the auto-update links on the Network Admin > Themes screen for themes that support the feature.
Follow-up to [48669], [48688].

Props afragen, pbiron, audrasjb, desrosj, SergeyBiryukov.
Fixes #51129.

git-svn-id: https://develop.svn.wordpress.org/trunk@48899 602fd350-edb4-49c9-b593-d223f7449a82
2020-08-27 22:22:23 +00:00
Sergey Biryukov a0b40ebd6a Script Loader: Disable concatenation for scripts with translations to ensure they are printed in the right order.
Props herregroen, ocean90, desrosj, mikeyarce, bobbingwide, audrasjb, johnbillion.
Fixes #50999.

git-svn-id: https://develop.svn.wordpress.org/trunk@48897 602fd350-edb4-49c9-b593-d223f7449a82
2020-08-27 21:57:01 +00:00