Commit Graph

36097 Commits

Author SHA1 Message Date
youknowriad 9aaa49f5a7 Editor: Update WordPress packages to Gutenberg 16.7 RC3.
It brings with a set of iterations and follow-ups to the initial package update.
It also fixes a regression that happened for interactive blocks.

Props gziolo, luisherranz, cbravobernal.
See #60315.
Built from https://develop.svn.wordpress.org/trunk@57499


git-svn-id: http://core.svn.wordpress.org/trunk@57000 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-31 12:59:56 +00:00
youknowriad bc902b5cd4 Editor: Fix Theme.json font settings unit test.
This file has been ommitted from the previous commit [57497].

See #60341.
Built from https://develop.svn.wordpress.org/trunk@57498


git-svn-id: http://core.svn.wordpress.org/trunk@56999 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-31 11:38:10 +00:00
youknowriad 9293a10257 Editor: Fix Theme.json font settings in unit test.
These changes fix incorrect font settings when testing the generation of a theme.json stylesheet.

Props aaronrobertshaw, mukesh27.
Fixes #60341.
Built from https://develop.svn.wordpress.org/trunk@57497


git-svn-id: http://core.svn.wordpress.org/trunk@56998 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-31 11:01:12 +00:00
youknowriad e28108b73e Editor: Sanitize nested array in theme.json properly.
WP_Theme_JSON sanitization is now able to sanitize data contained on indexed arrays. 
So certain data from theme.json, for example, settings.typography.fontFamilies which is a JSON array will be sanitized.

Props mmaattiiaass, mukesh27.
Fixes #60360.
Built from https://develop.svn.wordpress.org/trunk@57496


git-svn-id: http://core.svn.wordpress.org/trunk@56997 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-31 10:55:10 +00:00
Sergey Biryukov 4a56947b5b Twenty Eleven: Fix typo in `twentyeleven_widgets_init()` description.
Follow-up to [17738].

Props harshgajipara.
See #60383.
Built from https://develop.svn.wordpress.org/trunk@57495


git-svn-id: http://core.svn.wordpress.org/trunk@56996 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-31 10:52:12 +00:00
youknowriad 2889f76e92 REST API: Add route for single styles revisions.
Adds a route for single global styles revisions: /wp/v2/global-styles/${ parentId }/revisions/${ revisionsId }
This fixes the `getRevision` actions in the core-data package.

Props ramonopoly, get_dave.
Fixes #59810.
Built from https://develop.svn.wordpress.org/trunk@57494


git-svn-id: http://core.svn.wordpress.org/trunk@56995 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-31 10:41:14 +00:00
gziolo 9eea02e31b Editor: Add `viewStyle` property to `block.json` for frontend-only block styles
Related issue in Gutenberg: https://github.com/WordPress/gutenberg/issues/54491.

For block scripts there was already `script`, `viewScript` and `editorScript`. For block styles there was only `style` and `editorStyle`. This brings the parity.

Props gaambo.
Fixes #59673. 


Built from https://develop.svn.wordpress.org/trunk@57493


git-svn-id: http://core.svn.wordpress.org/trunk@56994 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-31 09:11:17 +00:00
gziolo 2de003154d Script Modules API: Add import map polyfill for older browsers
Syncs the changes from https://github.com/WordPress/gutenberg/pull/58263. Adds a polyfill to make import maps compatible with unsported browsers (https://caniuse.com/import-maps).

Fixes #60348.
Props cbravobernal, jorbin, luisherranz, jonsurrell.


Built from https://develop.svn.wordpress.org/trunk@57492


git-svn-id: http://core.svn.wordpress.org/trunk@56993 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-31 08:31:29 +00:00
isabel_brison 2140b001bd Editor: introduce `dimensions.aspectRatio` block support.
Adds front end rendering logic for the `dimensions.aspectRatio` block support as well as the required logic in `WP_Theme_JSON` and the style engine.

Props andrewserong.
Fixes #60365.

Built from https://develop.svn.wordpress.org/trunk@57491


git-svn-id: http://core.svn.wordpress.org/trunk@56992 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-31 02:54:17 +00:00
isabel_brison 04eb7ecf30 Editor: reduce specificity of block style variation selector.
Removes duplicate classname from the block style variation selector generated in `WP_Theme_JSON`’s `get_blocks_metadata` function.

Props flixos90, joemcgill, mukesh27, isabel_brison.
Fixes #60312.

Built from https://develop.svn.wordpress.org/trunk@57490


git-svn-id: http://core.svn.wordpress.org/trunk@56991 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-30 23:51:15 +00:00
dmsnell 53fd556c73 HTML API: Fix splitting single text node.
When `next_token()` was introduced, it brought a subtle bug. When encountering a `<` in the HTML stream which did not lead to a tag or comment or other token, it was treating the full text span to that point as one text node, and the following span another text node.

The entire span should be one text node.

In this patch the Tag Processor properly detects this scenario and combines the spans into one text node.

Follow-up to [57348]

Props jonsurrell
Fixes #60385


Built from https://develop.svn.wordpress.org/trunk@57489


git-svn-id: http://core.svn.wordpress.org/trunk@56990 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-30 22:09:22 +00:00
Aaron Jorbin fced238f35 Install: When populating options, maybe_serialize instead of always serialize.
Props xknown, peterwilsoncc, jorbin, desrosj.

Built from https://develop.svn.wordpress.org/trunk@57389


git-svn-id: http://core.svn.wordpress.org/trunk@56895 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-30 14:25:08 +00:00
Aaron Jorbin a9b81d3527 Uploads: Check for and verify ZIP archives.
Props costdev, peterwilsoncc, azaozz, tykoted, johnbillion, desrosj, afragen, jorbin.

Built from https://develop.svn.wordpress.org/trunk@57388


git-svn-id: http://core.svn.wordpress.org/trunk@56894 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-30 14:23:12 +00:00
Pascal Birchler fac1c328d8 I18N: Add missing space after `foreach` keyword.
Follow-up to [57386].

See #59656.
Built from https://develop.svn.wordpress.org/trunk@57387


git-svn-id: http://core.svn.wordpress.org/trunk@56893 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-30 14:10:10 +00:00
Pascal Birchler b7aadef64d I18N: Improve singular lookup of pluralized strings.
Ensures that looking up a singular that is also used as a pluralized string works as expected.
This improves compatibility for cases where for example both `__( 'Product' )` and `_n( 'Product', 'Products’, num )` are used in a project, where both will use the same translation for the singular version.

Although such usage is not really recommended nor documented, it must continue to work in the new i18n library in order to maintain backward compatibility and maintain expected behavior.

See #59656.
Built from https://develop.svn.wordpress.org/trunk@57386


git-svn-id: http://core.svn.wordpress.org/trunk@56892 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-30 14:01:11 +00:00
gziolo 27348531f3 Tests: Remove redundant unregister call in block bindings tear down
Only block bindings sources registered in the tests should get unregistered.

Follow-up for [57375].
See #60282.
Props czapla.


Built from https://develop.svn.wordpress.org/trunk@57385


git-svn-id: http://core.svn.wordpress.org/trunk@56891 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-30 12:57:15 +00:00
youknowriad 45fc776d33 Editor: Update the minimum compatible version of Gutenberg.
Previous Gutenberg versions are not compatible with recent trunk because of the
WP_Navigation_Block_Renderer classname. It's present in both.

Gutenberg has been updated to avoid the use of this class but we need to auto-disable 
old plugins to avoid fatals.

Props hellofromtonya.
See #60315.
Built from https://develop.svn.wordpress.org/trunk@57384


git-svn-id: http://core.svn.wordpress.org/trunk@56890 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-30 11:41:17 +00:00
youknowriad b319401d58 Editor: Fix PHP warning in Layout block support.
strpos was triggering a php warning. 
This also updates the code to use the now supported str_contains.

Props get_dave, dmsnell, ocean90, mukesh27.
Fixes #60327.
Built from https://develop.svn.wordpress.org/trunk@57383


git-svn-id: http://core.svn.wordpress.org/trunk@56889 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-30 11:10:17 +00:00
Pascal Birchler 24565dc6b7 I18N: Delete `.l10n.php` files when deleting a theme.
Follow-up to [57337] where this was already added for plugins.

See #59656.
Built from https://develop.svn.wordpress.org/trunk@57382


git-svn-id: http://core.svn.wordpress.org/trunk@56888 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-30 10:32:12 +00:00
Pascal Birchler 2e7358dec6 I18N: Ensure `.l10n.php` files are deleted when upgrading language packs.
Props amieiro.
See #59656.
Built from https://develop.svn.wordpress.org/trunk@57381


git-svn-id: http://core.svn.wordpress.org/trunk@56887 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-30 10:30:20 +00:00
Pascal Birchler ce230b8742 REST API: Support assigning terms when creating attachments.
Props mukesh27, Dharm1025, Ankit K Gupta, swissspidy, dharm1025, tanjimtc71, timothyblynjacobs, spacedmonkey.
Fixes #57897.
Built from https://develop.svn.wordpress.org/trunk@57380


git-svn-id: http://core.svn.wordpress.org/trunk@56886 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-30 08:39:16 +00:00
desrosj f0bfb0e9be Build/Test Tools: Test against MySQL 8.3
Version 8.3 is the latest short-term innovation release of MySQL.

See #59779.
Built from https://develop.svn.wordpress.org/trunk@57379


git-svn-id: http://core.svn.wordpress.org/trunk@56885 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-30 00:34:16 +00:00
Sergey Biryukov 23d8d94d27 Coding Standards: Update PHPCS to version 3.8.1.
PHPCS has seen two new releases since the update to WPCS 3.0, with especially the 3.8.0 version containing a huge number of improvements.

References:
* [https://github.com/PHPCSStandards/PHP_CodeSniffer/releases/tag/3.8.0 PHP_CodeSniffer 3.8.0 release notes]
* [https://github.com/PHPCSStandards/PHP_CodeSniffer/releases/tag/3.8.1 PHP_CodeSniffer 3.8.1 release notes]

Follow-up to [56695].

Props jrf, swissspidy.
Fixes #60279.
Built from https://develop.svn.wordpress.org/trunk@57378


git-svn-id: http://core.svn.wordpress.org/trunk@56884 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-29 21:31:13 +00:00
youknowriad 1de40f71be Editor: Update the WordPress packages to the Gutenberg 16.7 RC2 version.
This patch, somewhat small brings a lot to WordPress. 
This includes features like:

 - DataViews.
 - Customization tools like box shadow, background size and repeat.
 - UI improvements in the site editor. 
 - Preferences sharing between the post and site editors.
 - Unified panels and editors between post and site editors.
 - Improved template mode in the post editor.
 - Iterations to multiple interactive blocks.
 - Preparing the blocks and UI for pattern overrides.
 - and a lot more.

Props luisherranz, gziolo, isabel_brison, costdev, jonsurrell, peterwilsoncc, get_dave, antonvlasenko, desrosj.
See #60315.
Built from https://develop.svn.wordpress.org/trunk@57377


git-svn-id: http://core.svn.wordpress.org/trunk@56883 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-29 21:07:12 +00:00
desrosj aba105c851 Build/Test Tools: Update third-party Slack action.
This updates the `slackapi/slack-github-action` from `1.24.0` to `1.25.0`. This fixes more GitHub Action deprecated notices.

Follow up to [57362].

See #59805.
Built from https://develop.svn.wordpress.org/trunk@57376


git-svn-id: http://core.svn.wordpress.org/trunk@56882 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-29 15:06:16 +00:00
gziolo 81bb2d56e7 Editor: Add Block Bindings API helpers
It is part of the sync from the Gutenberg plugin that introduces the registry for block binding sources required for the new Block Bindings API: WordPress/gutenberg#54536.

See #60282.
Follow-up [57373].
Props czapla, artemiosans, santosguillamot, sc0ttkclark, lgladdy, talldanwp, swissspidy, youknowriad, fabiankaegy, mukesh27.


Built from https://develop.svn.wordpress.org/trunk@57375


git-svn-id: http://core.svn.wordpress.org/trunk@56881 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-29 13:08:16 +00:00
jorgefilipecosta b3958d342b Coding Standards: Remove unnecessary access and internal annotations from two functions in WP_REST_Templates_Controller.
This commit removes unnecessary access and internal annotations from two functions that are private and as such don't require the annotation. It also adds the since annotation with the 6.5 release given that the annotation may be useful.

Props swissspidy.
See #60358.
Built from https://develop.svn.wordpress.org/trunk@57374


git-svn-id: http://core.svn.wordpress.org/trunk@56880 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-29 12:34:18 +00:00
gziolo f1a977e357 Editor: Add registry for block binding sources
It is part of the sync from the Gutenberg plugin that introduces the registry for block binding sources required for the new Block Bindings API: https://github.com/WordPress/gutenberg/issues/54536.

See #60282.
Props czapla, artemiosans, santosguillamot, sc0ttkclark, lgladdy, talldanwp, swissspidy, youknowriad, fabiankaegy.


Built from https://develop.svn.wordpress.org/trunk@57373


git-svn-id: http://core.svn.wordpress.org/trunk@56879 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-29 11:16:16 +00:00
Sergey Biryukov 0ef6e192cb Coding Standards: Use strict type check for `in_array()` in `get_hooked_block_markup()`.
This aims to prevent type juggling causing incorrect results.

Follow-up to [57157].

Props jrf.
See #60279.
Built from https://develop.svn.wordpress.org/trunk@57372


git-svn-id: http://core.svn.wordpress.org/trunk@56878 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-28 21:34:17 +00:00
audrasjb 16832e24b8 Docs: Typo correction in `wp_internal_hosts` docblock.
Follow-up to [55289].

Props shailu25.
Fixes #60363.




Built from https://develop.svn.wordpress.org/trunk@57371


git-svn-id: http://core.svn.wordpress.org/trunk@56877 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-28 16:40:17 +00:00
audrasjb 01f4eab4d5 Docs: Improve various globals documentation, as per docblock standards.
Props upadalavipul, audrasjb, shailu25, viralsampat.
Fixes #59255.
See #59651.




Built from https://develop.svn.wordpress.org/trunk@57370


git-svn-id: http://core.svn.wordpress.org/trunk@56876 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-28 08:19:17 +00:00
audrasjb 7a908d39ac Coding Standards: Add missing escaping functions to `WP_Customize_Control` and `WP_Customize_Nav_Menu_Location_Control`.
Follow-up to [20295], [32806].

Props nareshbheda, shailu25, sabernhardt, audrasjb.
Fixes #60324.




Built from https://develop.svn.wordpress.org/trunk@57369


git-svn-id: http://core.svn.wordpress.org/trunk@56875 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-28 07:50:18 +00:00
Sergey Biryukov ea7a616041 Tests: Expand `sanitize_text_field()` tests.
This change ensures that the `sanitize_text_field` and `sanitize_textarea_field` filters are correctly invoked for the respective functions.

Follow-up to [38944].

Props pbearne, audrasjb.
Fixes #60357.
Built from https://develop.svn.wordpress.org/trunk@57368


git-svn-id: http://core.svn.wordpress.org/trunk@56874 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-27 20:37:18 +00:00
Weston Ruter 3f2e254478 Script Loader: Clarify in docs that `wp_get_inline_script_tag()` and `wp_print_inline_script_tag()` can take non-JS data.
Props vladimiraus.
Fixes #60331.

Built from https://develop.svn.wordpress.org/trunk@57367


git-svn-id: http://core.svn.wordpress.org/trunk@56873 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-27 01:04:14 +00:00
jorgefilipecosta 5c928b8d0f Editor: Add original_source and author_text to the templates REST API.
For the new "All templates" UI to work properly we need the REST API to provide to additional fields original_source, and author_text.

Props ntsekouras, get_dave.
Fixes #60358.
Built from https://develop.svn.wordpress.org/trunk@57366


git-svn-id: http://core.svn.wordpress.org/trunk@56872 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-27 00:07:18 +00:00
jorgefilipecosta 384f94d6ed Coding Standards: Fix some spaces on block-supports background.
When we run composer format these changes are applied so I guess we should just commit them to avoid seeing the changes again the future.
Built from https://develop.svn.wordpress.org/trunk@57365


git-svn-id: http://core.svn.wordpress.org/trunk@56871 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-26 17:53:15 +00:00
Sergey Biryukov cdbe6c71a5 Coding Standards: Add missing escaping in `Custom_Image_Header::step_2()`.
Follow-up to [4673], [14907].

Props nareshbheda, audrasjb, kebbet.
Fixes #59278.
Built from https://develop.svn.wordpress.org/trunk@57364


git-svn-id: http://core.svn.wordpress.org/trunk@56870 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-26 14:20:12 +00:00
desrosj f3fe615b79 Build/Test Tools: Update the `caniuse` data.
This updates the `caniuse-lite` database and includes all resulting CSS and built file changes, which are all minor changes due to fluctuations in browser usage.

Props gziolo, jonsurrell.
See #59657.
Built from https://develop.svn.wordpress.org/trunk@57363


git-svn-id: http://core.svn.wordpress.org/trunk@56869 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-26 14:04:12 +00:00
desrosj 4dfea53580 Build/Test Tools: Update third-party GitHub Actions.
This updates the following third-party GitHub Actions to their latest versions:

- `actions/setup-node` from `3.8.1` to `4.0.1`
- `actions/upload-artifact` from `3.1.2` to `4.3.0`
- `shivammathur/setup-php` from `2.28.0` to `2.29.0`
- `actions/cache` from `3.3.2` to `4.0.0`
- `codecov/codecov-action` from `3.1.4` to `3.1.5`

Most notably, these updates silence newly encountered notices as a result of GitHub beginning to transition away from Node.js 16 to Node.js 20 (see https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/).

Props swissspidy.
See #59805.
Built from https://develop.svn.wordpress.org/trunk@57362


git-svn-id: http://core.svn.wordpress.org/trunk@56868 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-26 13:49:16 +00:00
Aaron Jorbin 5056d865f7 Build/Tests: Ensure set_error_handler is cleaned up.
Follow up to: [57332].

Fixes #60305.


Built from https://develop.svn.wordpress.org/trunk@57361


git-svn-id: http://core.svn.wordpress.org/trunk@56867 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-26 00:54:15 +00:00
Aaron Jorbin 793b30bc30 Media: Redirect inactive attachment pages for logged-out users.
Ensure logged out users are redirected to the media file when attachment pages are inactive. This removes the read_post capability check from the canonical redirects as anonymous users lack the permission.

This was previously committed in [57310] before being reverted in [57318]. This update includes a fix to cover instances where revealing a URL could be considered a data leak and greatly expands the unit tests to ensure that this is covered along with many other instances.

Follow-up to [56657], [56658], [56711], [57310], [57318].

Props peterwilsoncc, jorbin, afercia, aristath, chesio, joppuyo, jorbin, lakshmananphp, poena, sergeybiryukov, swissspidy, johnbillion.
Fixes #59866.
See #57913.

Built from https://develop.svn.wordpress.org/trunk@57357


git-svn-id: http://core.svn.wordpress.org/trunk@56863 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-25 17:36:15 +00:00
Sergey Biryukov 9f3a76079b Docs: Fix a few typos in `wp-includes/pomo/po.php`.
Props shailu25.
Fixes #60346.
Built from https://develop.svn.wordpress.org/trunk@57356


git-svn-id: http://core.svn.wordpress.org/trunk@56862 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-25 17:08:17 +00:00
Bernhard Reiter b22f506554 Block Hooks: Amend PHPDoc for `hooked_block_{$hooked_block_type}` filter.
Add missing explanation of the dynamic part of the hook name.

Follow-up [57354].
Props swissspidy.
See #59572, #60126.
Built from https://develop.svn.wordpress.org/trunk@57355


git-svn-id: http://core.svn.wordpress.org/trunk@56861 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-25 14:20:17 +00:00
Bernhard Reiter b4938efb13 Block Hooks: Introduce a new `hooked_block_{$block_type}` filter.
Add a new `hooked_block_{$block_type}` filter that allows modifying a hooked block (in parsed block format) prior to insertion, while providing read access to its anchor block (in the same format).

This allows block authors to e.g. set a hooked block's attributes, or its inner blocks; the filter can peruse information about the anchor block when doing so. As such, this filter provides a solution to both #59572 and #60126.

The new filter is designed to strike a good balance and separation of concerns with regard to the existing [https://developer.wordpress.org/reference/hooks/hooked_block_types/ `hooked_block_types` filter], which allows addition or removal of a block to the list of hooked blocks for a given anchor block -- all of which are identified only by their block ''types''. This new filter, on the other hand, only applies to ''one'' hooked block at a time, and allows modifying the entire (parsed) hooked block; it also gives (read) access to the parsed anchor block.

Props gziolo, tomjcafferkey, andrewserong, isabel_brison, timbroddin, yansern.
Fixes #59572, #60126.
Built from https://develop.svn.wordpress.org/trunk@57354


git-svn-id: http://core.svn.wordpress.org/trunk@56860 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-25 13:48:18 +00:00
youknowriad 493d73f5c0 Editor: Add video and audio pattern categories.
More categories, better organization for patterns
as they grow and power more WordPress websites.

Props aaronrobertshaw, get_dave.
Fixes #60342.
Built from https://develop.svn.wordpress.org/trunk@57353


git-svn-id: http://core.svn.wordpress.org/trunk@56859 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-25 12:48:16 +00:00
youknowriad 02cdd7f047 Editor: Fix Theme.json application of custom root selector for styles.
Theme.json stylesheets attempting to use a custom root selector are generated with in correct styles.

Props aaronrobertshaw, get_dave, mukesh27.
Fixes #60343.
Built from https://develop.svn.wordpress.org/trunk@57352


git-svn-id: http://core.svn.wordpress.org/trunk@56858 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-25 10:43:12 +00:00
Pascal Birchler eafafcf518 Twenty Twenty-Four: Change font family slug to lowercase.
Ensures referencing the correct CSS custom property.

Props RavanH, poena, onemaggie, huzaifaalmesbah, mukesh27.
Fixes #60325.
Built from https://develop.svn.wordpress.org/trunk@57351


git-svn-id: http://core.svn.wordpress.org/trunk@56857 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-25 09:27:16 +00:00
Pascal Birchler 64ca037991 I18N: Rename `WP_Translation_Controller::instance()` method to `get_instance()`.
This improves consistency as `get_instance()` is more commonly used in core. 

See #59656.
Built from https://develop.svn.wordpress.org/trunk@57350


git-svn-id: http://core.svn.wordpress.org/trunk@56856 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-25 07:53:17 +00:00
Sergey Biryukov 465d17a905 Docs: Fix typo in `_get_block_template_file()` DocBlock.
Follow-up to [55744].

See #59651.
Built from https://develop.svn.wordpress.org/trunk@57349


git-svn-id: http://core.svn.wordpress.org/trunk@56855 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-24 23:41:06 +00:00
dmsnell 62e0ef411b HTML API: Scan all syntax tokens in a document, read modifiable text.
Since its introduction in WordPress 6.2 the HTML Tag Processor has
provided a way to scan through all of the HTML tags in a document and
then read and modify their attributes. In order to reliably do this, it
also needed to be aware of other kinds of HTML syntax, but it didn't
expose those syntax tokens to consumers of the API.

In this patch the Tag Processor introduces a new scanning method and a
few helper methods to read information about or from each token. Most
significantly, this introduces the ability to read `#text` nodes in the
document.

What's new in the Tag Processor?
================================

 - `next_token()` visits every distinct syntax token in a document.
 - `get_token_type()` indicates what kind of token it is.
 - `get_token_name()` returns something akin to `DOMNode.nodeName`.
 - `get_modifiable_text()` returns the text associated with a token.
 - `get_comment_type()` indicates why a token represents an HTML comment.

Example usage.
==============

{{{
<?php
function strip_all_tags( $html ) {
        $text_content = '';
        $processor    = new WP_HTML_Tag_Processor( $html );

        while ( $processor->next_token() ) {
                if ( '#text' !== $processor->get_token_type() ) {
                        continue;
                }

                $text_content .= $processor->get_modifiable_text();
        }

        return $text_content;
}
}}}

What changes in the Tag Processor?
==================================

Previously, the Tag Processor would scan the opening and closing tag of
every HTML element separately. Now, however, there are special tags
which it only visits once, as if those elements were void tags without
a closer.

These are special tags because their content contains no other HTML or
markup, only non-HTML content.

 - SCRIPT elements contain raw text which is isolated from the rest of
   the HTML document and fed separately into a JavaScript engine. There
   are complicated rules to avoid escaping the script context in the HTML.
   The contents are left verbatim, and character references are not decoded.

 - TEXTARA and TITLE elements contain plain text which is decoded
   before display, e.g. transforming `&amp;` into `&`. Any markup which
   resembles tags is treated as verbatim text and not a tag.

 - IFRAME, NOEMBED, NOFRAMES, STYLE, and XMP elements are similar to the
   textarea and title elements, but no character references are decoded.
   For example, `&amp;` inside a STYLE element is passed to the CSS engine
   as the literal string `&amp;` and _not_ as `&`.

Because it's important not treat this inner content separately from the
elements containing it, the Tag Processor combines them when scanning
into a single match and makes their content available as modifiable
text (see below).

This means that the Tag Processor will no longer visit a closing tag for
any of these elements unless that tag is unexpected.

{{{
    <title>There is only a single token in this line</title>
    <title>There are two tokens in this line></title></title>
    </title><title>There are still two tokens in this line></title>
}}}

What are tokens?
================

The term "token" here is a parsing term, which means a primitive unit in
HTML. There are only a few kinds of tokens in HTML:

 - a tag has a name, attributes, and a closing or self-closing flag.
 - a text node, or `#text` node contains plain text which is displayed
   in a browser and which is decoded before display.
 - a DOCTYPE declaration indicates how to parse the document.
 - a comment is hidden from the display on a page but present in the HTML.

There are a few more kinds of tokens that the HTML Tag Processor will
recognize, some of which don't exist as concepts in HTML. These mostly
comprise XML syntax elements that aren't part of HTML (such as CDATA and
processing instructions) and invalid HTML syntax that transforms into
comments.

What is a funky comment?
========================

This patch treats a specific kind of invalid comment in a special way.
A closing tag with an invalid name is considered a "funky comment." In
the browser these become HTML comments just like any other, but their
syntax is convenient for representing a variety of bits of information
in a well-defined way and which cannot be nested or recursive, given
the parsing rules handling this invalid syntax.

 - `</1>`
 - `</%avatar_url>`
 - `</{"wp_bit": {"type": "post-author"}}>`
 - `</[post-author]>`
 - `</__( 'Save Post' );>`

All of these examples become HTML comments in the browser. The content
inside the funky content is easily parsable, whereby the only rule is
that it starts at the `<` and continues until the nearest `>`. There
can be no funky comment inside another, because that would imply having
a `>` inside of one, which would actually terminate the first one.

What is modifiable text?
========================

Modifiable text is similar to the `innerText` property of a DOM node.
It represents the span of text for a given token which may be modified
without changing the structure of the HTML document or the token.

There is currently no mechanism to change the modifiable text, but this
is planned to arrive in a later patch.

Tags
====

Most tags have no modifiable text because they have child nodes where
text nodes are found. Only the special tags mentioned above have
modifiable text.

{{{
    <div class="post">Another day in HTML</div>
    └─ tag ──────────┘└─ text node ─────┘└────┴─ tag
}}}

{{{
    <title>Is <img> &gt; <image>?</title>
    │      └ modifiable text ───┘       │ "Is <img> > <image>?"
    └─ tag ─────────────────────────────┘
}}}

Text nodes
==========

Text nodes are entirely modifiable text.

{{{
    This HTML document has no tags.
    └─ modifiable text ───────────┘
}}}

Comments
========

The modifiable text inside a comment is the portion of the comment that
doesn't form its syntax. This applies for a number of invalid comments.

{{{
    <!-- this is inside a comment -->
    │   └─ modifiable text ──────┘  │
    └─ comment token ───────────────┘
}}}

{{{
    <!-->
    This invalid comment has no modifiable text.
}}}

{{{
    <? this is an invalid comment -->
    │ └─ modifiable text ────────┘  │
    └─ comment token ───────────────┘
}}}

{{{
    <[CDATA[this is an invalid comment]]>
    │       └─ modifiable text ───────┘ │
    └─ comment token ───────────────────┘
}}}

Other token types also have modifiable text. Consult the code or tests
for further information.

Developed in https://github.com/WordPress/wordpress-develop/pull/5683
Discussed in https://core.trac.wordpress.org/ticket/60170

Follows [57575]

Props bernhard-reiter, dlh, dmsnell, jonsurrell, zieladam
Fixes #60170


Built from https://develop.svn.wordpress.org/trunk@57348


git-svn-id: http://core.svn.wordpress.org/trunk@56854 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-24 23:37:16 +00:00
youknowriad ba6ae923b5 Script Loader: Load the modules to the footer in classic themes
Incremental import maps fail if the import map is printed after the module scripts.
This means, we should always render import maps first. This means that for classic themes, we need to move the import map and modules to the footer because we can't know before that which modules are needed.

Props luisherranz, cbravobernal.
Fixes #60240.
Built from https://develop.svn.wordpress.org/trunk@57345


git-svn-id: http://core.svn.wordpress.org/trunk@56851 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-24 10:39:18 +00:00
Pascal Birchler 417bf8d365 I18N: Improve docblocks after [57337].
Props mukesh27.
See #59656.
Built from https://develop.svn.wordpress.org/trunk@57344


git-svn-id: http://core.svn.wordpress.org/trunk@56850 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-24 07:57:14 +00:00
dmsnell 7f22c4d4ea HTML API: Support INPUT tags.
Adds support for the following HTML elements to the HTML Processor:

 - INPUT

Previously this element was not supported and the HTML Processor would bail when encountering one. Now, with this patch applied, it will proceed to parse the HTML document.

Developed in https://github.com/WordPress/wordpress-develop/pull/5907
Discussed in https://core.trac.wordpress.org/ticket/60283

Props jonsurrell
See #60283


Built from https://develop.svn.wordpress.org/trunk@57343


git-svn-id: http://core.svn.wordpress.org/trunk@56849 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-24 03:30:14 +00:00
Sergey Biryukov e7865d0001 Docs: Add missing full stop in `WP_Comment_Query::parse_query()` DocBlock.
Props hardik2221.
Fixes #60323.
Built from https://develop.svn.wordpress.org/trunk@57342


git-svn-id: http://core.svn.wordpress.org/trunk@56848 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-23 22:28:15 +00:00
Weston Ruter a3abf9c89f Script Loader: Only emit CDATA wrapper comments in `wp_get_inline_script_tag()` for JavaScript.
This avoids erroneously adding CDATA wrapper comments for non-JavaScript scripts, including those for JSON such as the `importmap` for script modules in #56313.

Props westonruter, flixos90, mukesh27, dmsnell.
See #56313.
Fixes #60320.

Built from https://develop.svn.wordpress.org/trunk@57341


git-svn-id: http://core.svn.wordpress.org/trunk@56847 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-23 17:56:12 +00:00
youknowriad 7343352744 Editor: Unset reference used in foreach statement.
In PHP it is a good practice to unset $value if it was created by reference in a foreach loop, as the reference is still valid outside the loop, and this avoids accidental bugs.

Props get_dave.
Fixes #60326.
Built from https://develop.svn.wordpress.org/trunk@57340


git-svn-id: http://core.svn.wordpress.org/trunk@56846 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-23 17:11:11 +00:00
Pascal Birchler 97518917dd I18N: Improve edge case handling in `WP_Translation_Controller`.
Prevents PHP warnings for possibly undefined array keys.
Also fixes incorrect `@covers` annotations.

Follow-up to [57337].
See #59656.
Built from https://develop.svn.wordpress.org/trunk@57339


git-svn-id: http://core.svn.wordpress.org/trunk@56845 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-23 15:15:14 +00:00
Pascal Birchler a40f2f7555 I18N: Add missing variable in string replacement.
Ensures the preferred file name for lookup has the correct extension.

Follow-up to [57337].
See #59656.
Built from https://develop.svn.wordpress.org/trunk@57338


git-svn-id: http://core.svn.wordpress.org/trunk@56844 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-23 14:03:10 +00:00
Pascal Birchler c6ccfb1242 I18N: Introduce a more performant localization library.
This introduces a more lightweight library for loading `.mo` translation files which offers increased speed and lower memory usage.
It also supports loading multiple locales at the same time, which makes locale switching faster too.

For plugins interacting with the `$l10n` global variable in core, a shim is added to retain backward compatibility with the existing `pomo` library.

In addition to that, this library supports translations contained in PHP files, avoiding a binary file format and leveraging OPCache if available.
If an `.mo` translation file has a corresponding `.l10n.php` file, the latter will be loaded instead.
This behavior can be adjusted using the new `translation_file_format` and `load_translation_file` filters.

PHP translation files will be typically created by downloading language packs, but can also be generated by plugins.
See https://make.wordpress.org/core/2023/11/08/merging-performant-translations-into-core/ for more context.

Props dd32, swissspidy, flixos90, joemcgill, westonruter, akirk, SergeyBiryukov.
Fixes #59656.
Built from https://develop.svn.wordpress.org/trunk@57337


git-svn-id: http://core.svn.wordpress.org/trunk@56843 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-23 13:34:11 +00:00
Bernhard Reiter a63a6ae7ee General: Add $schema property to block and theme JSON files.
Additionally, this changeset fixes some of the `block.json` and `theme.json` files in PHPUnit tests by adding missing `title` properties to satisfy the schema. Those changes have no impact on the runtime whatsoever and do not change the result of unit tests.

Note that some block and theme JSON files still aren't valid according to the schema. Fixing is underway; the required changes will be merged subsequently.

Props jonsurrell, dmsnell, gziolo.
Fixes #60255.
Built from https://develop.svn.wordpress.org/trunk@57336


git-svn-id: http://core.svn.wordpress.org/trunk@56842 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-23 13:07:16 +00:00
youknowriad 7cd277d6dc Editor: Fix back to items label capitalization for the pattern categories.
This uses the same capitalization used in Tags or Link Categories taxonomies.

Props mukesh27.
See #60322.
Built from https://develop.svn.wordpress.org/trunk@57335


git-svn-id: http://core.svn.wordpress.org/trunk@56841 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-23 10:10:18 +00:00
youknowriad 728299f24a Editor: Define the labels of the pattern category taxonomy.
In WordPress 6.5, the taxonomy is going to be rendered using a standard UI
in the editor, this means that all the labels need to be defined properly.

Props ntsekouras.
Fixes #60322.
Built from https://develop.svn.wordpress.org/trunk@57334


git-svn-id: http://core.svn.wordpress.org/trunk@56840 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-23 09:16:11 +00:00
youknowriad 3a3982b3cc Editor: Update the ThemeJson unit test to cover custom CSS feature.
In #59499 a fix have been shipped to theme.json custom CSS
when applied to blocks with multiple CSS selectors.
This commit covers that fix with a unit test.

Props wildworks.
Fixes #60294.
Built from https://develop.svn.wordpress.org/trunk@57333


git-svn-id: http://core.svn.wordpress.org/trunk@56839 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-23 09:06:15 +00:00
youknowriad 4f65a6d337 Editor: Ensure PHPUnit10 compatibility for ThemeJson unit test.
Expecting E_STRICT, E_NOTICE, and E_USER_NOTICE errors is deprecated in PHPUnit 10.
This updates the test to rely on an exception instead.

Props antonvlasenko.
Fixes #60305.
Built from https://develop.svn.wordpress.org/trunk@57332


git-svn-id: http://core.svn.wordpress.org/trunk@56838 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-23 08:59:14 +00:00
youknowriad 20d1625207 Editor: Set show_tagcloud to false for Pattern Categories.
Pattern Categories is a taxonomy used to categories the patterns in the site editor.
It is not meant to be shown in the frontend and show tag clouds.

Props wildworks, mukesh27.
Fixes #60119.
Built from https://develop.svn.wordpress.org/trunk@57331


git-svn-id: http://core.svn.wordpress.org/trunk@56837 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-23 08:30:11 +00:00
youknowriad 4ed526c748 Build Tools: Configure prettier properly.
Allows tools like prettier or VSCode to auto-format JS files propertly.
It pulls the prettier config that is used in the Gutenberg repository.

Props gziolo.
Fixes #60316.
Built from https://develop.svn.wordpress.org/trunk@57330


git-svn-id: http://core.svn.wordpress.org/trunk@56836 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-23 08:01:19 +00:00
isabel_brison 06a098f174 Editor: fix fluid font division by zero error when min and max viewport widths are equal.
Fixes a division error by returning null when `minViewportWidth` - `maxViewportWidth` is zero in `wp_get_computed_fluid_typography_value`.

Props ramonopoly, mukesh27, andrewserong, audrasjb.
Fixes #60263.

Built from https://develop.svn.wordpress.org/trunk@57329


git-svn-id: http://core.svn.wordpress.org/trunk@56835 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-23 05:57:15 +00:00
isabel_brison b884ecf21e Editor: fix classname output on blocks without layout.
Prevents layout classnames from being output on blocks with no layout support and no child layout classnames by returning early from `wp_render_layout_support_flag`.

Props andrewserong.
Fixes #60292.

Built from https://develop.svn.wordpress.org/trunk@57328


git-svn-id: http://core.svn.wordpress.org/trunk@56834 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-23 05:38:13 +00:00
dmsnell 82d1434124 Script Modules API: Rename `wp_module` to `wp_script_module`
Renames all mentions to "module" with "script module", including function names, comments, and tests.

Follow up to [57269]

The list of functions renamed are:

 - `wp_module()`          -> `wp_script_module()`.
 - `wp_register_module()` -> `wp_register_script_module()`.
 - `wp_enqueue_module()`  -> `wp_enqueue_script_module()`.
 - `wp_dequeue_module()`  -> `wp_dequeue_script_module()`.
 - `WP_Script_Modules::print_enqueued_modules()` -> `WP_Script_Modules::print_enqueued_script_modules()`.
 - `WP_Script_Modules::print_module_preloads()`  -> `WP_Script_Modules::print_script_module_preloads()`.

It also adds PHP 7 typing to all the functions and improves the types of the `$deps` argument of `wp_register_script_module()` and `wp_enqueue_script_module()` using `@type`.

Props luisherranz, idad5, costdev, nefff, joemcgill, jorbin, swisspidy, jonsurrel, flixos90, gziolo, westonruter, bernhard-reiter, kamranzafar4343
See #56313


Built from https://develop.svn.wordpress.org/trunk@57327


git-svn-id: http://core.svn.wordpress.org/trunk@56833 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-23 03:34:14 +00:00
dmsnell 3efed38163 HTML API: Support PARAM, SOURCE, and TRACK tags.
Adds support for the following HTML elements to the HTML Processor:

 - PARAM, SOURCE, TRACK

Previously these elements were not supported and the HTML Processor would bail when encountering them. Now, with this patch applied, it will proceed to parse an HTML document when encountering those tags.

Props jonsurrell, dmsnell
Fixes #60283


Built from https://develop.svn.wordpress.org/trunk@57326


git-svn-id: http://core.svn.wordpress.org/trunk@56832 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-23 01:51:16 +00:00
Sergey Biryukov 8c3354e6ac Docs: Correct the `WP_User Query` location reference in query cache tests.
Follow-up to [1047/tests], [33749], [55657].

See #59651.
Built from https://develop.svn.wordpress.org/trunk@57325


git-svn-id: http://core.svn.wordpress.org/trunk@56831 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-22 19:42:16 +00:00
Pascal Birchler 4ca84cc0ee Twenty Twenty-Four: Update license information in readme.
Adds missing license information for bundled fonts.

Props acosmin, shailu25, poena, sabernhardt.
Fixes #59838
Built from https://develop.svn.wordpress.org/trunk@57324


git-svn-id: http://core.svn.wordpress.org/trunk@56830 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-22 12:24:09 +00:00
Pascal Birchler 646240956c Bundled Theme: Fix a couple of incorrect theme name references.
Corrects the theme name used in docblocks in two places in Twenty Nineteen and Twenty Seventeen.

Props shailu25, mukesh27.
Fixes #60310.

Built from https://develop.svn.wordpress.org/trunk@57323


git-svn-id: http://core.svn.wordpress.org/trunk@56829 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-22 12:20:12 +00:00
Pascal Birchler fa96cdfee0 Build/Test Tools: Expand "imagemin" Grunt task to cover default themes.
Runs `npm run grunt precommit:image` to minify/compress images in the repository.

Props desrosj.
Fixes #58996.
Built from https://develop.svn.wordpress.org/trunk@57322


git-svn-id: http://core.svn.wordpress.org/trunk@56828 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-22 11:43:18 +00:00
Sergey Biryukov b2e9235b13 Plugins: Correct table layout on smaller screens.
This ensures that the message about deleting a plugin or having no plugins installed is displayed in full width.

Follow-up to [26134], [33016].

Props shailu25, mukesh27, passoniate, JavierCasares, sabernhardt.
Fixes #50069.
Built from https://develop.svn.wordpress.org/trunk@57321


git-svn-id: http://core.svn.wordpress.org/trunk@56827 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-21 18:54:18 +00:00
Sergey Biryukov d3bdd3911c Docs: Correct the placement of `@global` tags in `wp-settings.php`.
Props shailu25, mukesh27.
Fixes #60146.
Built from https://develop.svn.wordpress.org/trunk@57320


git-svn-id: http://core.svn.wordpress.org/trunk@56826 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-20 16:08:17 +00:00
dmsnell 1d4b95336a HTML API: Cleanup tests and list of void elements.
This patch adds newly supported elements to tests that should have been updated
in recent PRs, but which were merged without that. Those PRs removed failing
tests showing that the elements were unsupported, but did not add the elements
to the list of supported ones.

It also removes some elements from the special-exclusion list of unsupported IN
BODY elements. These did not present in failing tests because earlier
conditions in the switch structure caught the tags before hitting the default
block.

Finally it adds some missing elements to the list of void elements. These
elements are not listed as void in the HTML specification because they are
deprecated. However, they are treated as void for the sake of HTML
serialization and the parsing rules indicate that they behave as void elements,
so it's safe to list them within the HTML API as void.

Developed in WordPress/wordpress-develop#5913

Fixes #60307


Built from https://develop.svn.wordpress.org/trunk@57319


git-svn-id: http://core.svn.wordpress.org/trunk@56825 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-20 00:15:13 +00:00
Peter Wilson 2ce808cc7f Media: Revert [57310].
This commit reintroduced a minor data exposure issue.

Props swissspidy.
See #59866, #57913.


Built from https://develop.svn.wordpress.org/trunk@57318


git-svn-id: http://core.svn.wordpress.org/trunk@56824 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-20 00:00:11 +00:00
dmsnell cf88a3098c HTML API: Add support for PRE and LISTING elements.
Adds support for the following HTML elements to the HTML Processor:

 - PRE, LISTING

Previously, these elements were not supported and the HTML Processor would bail when encountering them. Now, with this patch applied, it will proceed to parse an HTML document when encountering those tags.

Developed in WordPress/wordpress-develop#5903

Props jonsurrell, dmsnell
Fixes #60283


Built from https://develop.svn.wordpress.org/trunk@57317


git-svn-id: http://core.svn.wordpress.org/trunk@56823 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-19 22:07:09 +00:00
dmsnell 050c342a46 HTML API: Add support for BR, EMBED, & other tags.
Adds support for the following HTML elements to the HTML Processor:

 - AREA, BR, EMBED, KEYGEN, WBR
 - Only the opening BR tag is supported, as the invalid closer `</br>`
   involves more complicated rules, to be implemented later.

Previously, these elements were not supported and the HTML Processor
would bail when encountering them. With this patch it will proceed to
parse an HTML document when encountering those tags as long as other
normal conditions don't cause it to bail (such as complicated format
reconstruction rules).

Props jonsurrell, dmsnell
Fixes #60283


Built from https://develop.svn.wordpress.org/trunk@57316


git-svn-id: http://core.svn.wordpress.org/trunk@56822 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-19 21:41:12 +00:00
Joe McGill 5d2bccd66d Editor: Support deferred block variation initialization on the server.
When registering blocks on the server using `register_block_type()` or similar functions, a set of block type variations can also be registered. However, in some cases building this variation data during block registration can be an expensive process, which is not needed in most contexts. 

To address this problem, this adds support to the `WP_Block_Type` object for a new property, `variation_callback`, which can be used to register a callback for building variation data only when the block variations data is needed. The `WP_Block_Type::variations` property has been changed to a private property that is now accessed through the magic `__get()` method. The magic getter makes use of a new public method, `WP_Block_Type::get_variations` which will build variations from a registered callback if variations have not already been built.

Props spacedmonkey, thekt12, Mamaduka, gaambo, gziolo, mukesh27, joemcgill.
Fixes #59969.

Built from https://develop.svn.wordpress.org/trunk@57315


git-svn-id: http://core.svn.wordpress.org/trunk@56821 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-19 20:54:13 +00:00
dmsnell 141ba4ff59 HTML API: Add support for HR element.
Adds support for the following HTML elements to the HTML Processor:

 - HR

Previously, this element was not supported and the HTML Processor would bail when encountering
it. Now, with this patch, it will proceed to parse an HTML document when encountering one.

Developed in WordPress/wordpress-develop#5897

Props jonsurrell, dmsnell
Fixes #60283


Built from https://develop.svn.wordpress.org/trunk@57314


git-svn-id: http://core.svn.wordpress.org/trunk@56820 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-19 19:03:09 +00:00
Sergey Biryukov 64a499ab92 Twenty Twenty: Add missing comma in `twentytwenty_classic_editor_styles()`.
This resolves a WPCS error:
{{{
There should be a comma after the last array item in a multi-line array.
}}}

Follow-up to [57311].

See #48630.
Built from https://develop.svn.wordpress.org/trunk@57313


git-svn-id: http://core.svn.wordpress.org/trunk@56819 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-19 18:26:11 +00:00
Felix Arntz e19c18cba9 Bootstrap/Load: Introduce functions to check whether WordPress is serving a REST API request.
This changeset introduces two functions:
* `wp_is_serving_rest_request()` returns a boolean for whether WordPress is serving an actual REST API request.
* `wp_is_rest_endpoint()` returns a boolean for whether a WordPress REST API endpoint is currently being used. While this is always the case if `wp_is_serving_rest_request()` returns `true`, the function additionally covers the scenario of internal REST API requests, i.e. where WordPress calls a REST API endpoint within the same request.

Both functions should only be used after the `parse_request` action.

All relevant manual checks have been adjusted to use one of the new functions, depending on the use-case. They were all using the same constant check so far, while in fact some of them were intending to check for an actual REST API request while others were intending to check for REST endpoint usage.

A new filter `wp_is_rest_endpoint` can be used to alter the return value of the `wp_is_rest_endpoint()` function.

Props lots.0.logs, TimothyBlynJacobs, flixos90, joehoyle, peterwilsoncc, swissspidy, SergeyBiryukov, pento, mikejolley, iandunn, hellofromTonya, Cybr, petitphp.
Fixes #42061.

Built from https://develop.svn.wordpress.org/trunk@57312


git-svn-id: http://core.svn.wordpress.org/trunk@56818 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-19 17:40:09 +00:00
Sergey Biryukov 9d8b474654 Twenty Twenty: Move the Inter font declaration to a separate file and enqueue the file.
This allows the font to be dequeued by a child theme or plugin.

Props poena, markhowellsmead, nielslange, Otto42, SGr33n, mukesh27, joemcgill.
Fixes #48630.
Built from https://develop.svn.wordpress.org/trunk@57311


git-svn-id: http://core.svn.wordpress.org/trunk@56817 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-19 17:38:14 +00:00
Peter Wilson 3a36e92c88 Media: Redirect inactive attachement pages for logged-out users.
Ensure logged out users are redirected to the media file when attachment pages are inactive. This removes the `read_post` capability check from the canonical redirects as anonymous users lack the permission.

Follow-up to [56657], [56658], [56711].

Props afercia, aristath, chesio, joppuyo, jorbin, lakshmananphp, poena, sergeybiryukov.
Fixes #59866.
See #57913.


Built from https://develop.svn.wordpress.org/trunk@57310


git-svn-id: http://core.svn.wordpress.org/trunk@56816 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-19 00:44:13 +00:00
Sergey Biryukov a6c37e6b50 Docs: Fix several typos in inline comments.
Follow-up to [7747], [27419], [55155].

Props shailu25, sabernhardt.
Fixes #60285.
Built from https://develop.svn.wordpress.org/trunk@57309


git-svn-id: http://core.svn.wordpress.org/trunk@56815 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-18 22:13:16 +00:00
Felix Arntz 0e4eaa64b5 Build/Test Tools: Fix unstable query tests.
Three `WP_Query` tests could randomly fail due to an undefined order because two test posts were using the exact same `post_date`.

Props boonebgorges, flixos90.
Fixes #60288.

Built from https://develop.svn.wordpress.org/trunk@57308


git-svn-id: http://core.svn.wordpress.org/trunk@56814 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-18 18:40:13 +00:00
Aaron Jorbin f4b5da2859 Embeds: Ensure the deprecated function `print_emoji_styles` isn't used
Ensure that the proper new function wp_enqueue_emoji_styles is used in embeds.

Follow-up to: [56194].

Props peterwilsoncc, bobbingwide, hellofromTonya.
Fixes #59892. See: #58775.


Built from https://develop.svn.wordpress.org/trunk@57306


git-svn-id: http://core.svn.wordpress.org/trunk@56812 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-17 21:36:16 +00:00
Pascal Birchler e09d2034a6 I18N: Fix duplicate `determine_locale()` tests added in [57286].
Props johnbillion.
See #58696.
Built from https://develop.svn.wordpress.org/trunk@57305


git-svn-id: http://core.svn.wordpress.org/trunk@56811 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-17 18:56:12 +00:00
Sergey Biryukov 2ba732f956 Twenty Twenty-Four: Remove extra tab character inside the text domain.
Follow-up to [57281].

Props sabernhardt.
Fixes #60245.
Built from https://develop.svn.wordpress.org/trunk@57304


git-svn-id: http://core.svn.wordpress.org/trunk@56810 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-17 18:00:16 +00:00
Pascal Birchler e6a10d45e7 I18N: Prevent PHP warning in `WP_Textdomain_Registry`.
Prevents a warning upon cache invalidation after language pack updates if the arguments don’t have the expected format.

Follow-up to [57287], [57290], [57298], [57299].

See #58919.
Built from https://develop.svn.wordpress.org/trunk@57303


git-svn-id: http://core.svn.wordpress.org/trunk@56809 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-17 14:32:18 +00:00
audrasjb b9638e6b00 Docs: Fix var types of parameters in `sanitize_option()` and `sanitize_option_{$option}`.
The related docblocks were previously defining `$value` and `$original_value` as if they were of type `string`, but they can also be of other types, like `array`.

Props gerardreches, crstauf, mukesh27.
Fixes #60214.
See #59651.




Built from https://develop.svn.wordpress.org/trunk@57302


git-svn-id: http://core.svn.wordpress.org/trunk@56808 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-17 09:09:15 +00:00
audrasjb 79e39943a5 Twenty Twenty: Replace `wp_date()` with `date_i18n()`.
Since WordPress 5.3 it is recommended to use `wp_date()` instead of `date_i18n()`. This changeset replaces the function in Twenty Twenty, with a fallback to `date_i18n()` for old versions of WordPress.

For more info, see https://make.wordpress.org/core/2019/09/23/date-time-improvements-wp-5-3/.

Props sachyya-sachet, joyously, sabernhardt, poena.
Fixes #48589.




Built from https://develop.svn.wordpress.org/trunk@57301


git-svn-id: http://core.svn.wordpress.org/trunk@56807 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-17 09:01:16 +00:00
audrasjb 1866ae2cb3 Bundled Themes: Typo corrections in various themes docblocks.
Props shailu25.
Fixes #60268.
See #59651.




Built from https://develop.svn.wordpress.org/trunk@57300


git-svn-id: http://core.svn.wordpress.org/trunk@56806 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-17 08:53:15 +00:00
Sergey Biryukov 0a0b0e91cf I18N: Correctly invalidate language file paths in `WP_Textdomain_Registry`.
Since the cache key in `::get_language_files_from_path()` is based on a path that always includes a trailing slash, the path in `::invalidate_mo_files_cache()` should include the trailing slash as well.

Includes adjusting the test expectations accordingly.

Follow-up to [57287], [57290], [57298].

See #58919.
Built from https://develop.svn.wordpress.org/trunk@57299


git-svn-id: http://core.svn.wordpress.org/trunk@56805 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-16 21:45:12 +00:00
Sergey Biryukov fb3b7f59e3 Tests: Remove leftover `trailingslashit()` calls in `WP_Textdomain_Registry` tests.
Follow-up to [57287], [57290].

See #58919.
Built from https://develop.svn.wordpress.org/trunk@57298


git-svn-id: http://core.svn.wordpress.org/trunk@56804 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-16 21:34:16 +00:00
desrosj d76e220659 Bundled Themes: Version bump themes affected by #60241.
In order to release the fix for #60241, this bumps the version of the following themes:
- Twenty Seventeen: 3.5
- Twenty Twenty: 2.5
- Twenty Twenty-One: 2.2

Props sabernhardt, jorbin.
See #60267.
Built from https://develop.svn.wordpress.org/trunk@57296


git-svn-id: http://core.svn.wordpress.org/trunk@56802 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-16 19:25:12 +00:00
joedolson cb1e71aa25 Administration: Remove empty form `action` attributes.
Remove the `action` attribute in the login language selector, privacy forms, and classic widget forms.

An empty `action` attribute is invalid HTML4 and unsupported HTML5. The `action` attribute is optional, but must have a valid URL when provided.

Props Malae, audrasjb, bartkleinreesink, nicolefurlan, shubhamsedani, costdev, peterwilsoncc, rajinsharwar, joedolson.
Fixes #58226.
Built from https://develop.svn.wordpress.org/trunk@57295


git-svn-id: http://core.svn.wordpress.org/trunk@56801 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-16 17:31:13 +00:00
Felix Arntz 14263ea394 Media: Consider inline image CSS width to backfill `width` and `height` attributes.
Prior to this changeset, WordPress core would use the original image size, which in the particular case of inline images would be severely off, as they are usually very small. This could lead to incorrect application of `fetchpriority="high"` and other performance optimizations.

Props westonruter, flixos90, joemcgill, mukesh27.
Fixes #59352.

Built from https://develop.svn.wordpress.org/trunk@57294


git-svn-id: http://core.svn.wordpress.org/trunk@56800 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-16 17:03:13 +00:00