Commit Graph

51283 Commits

Author SHA1 Message Date
whyisjake
9bc78e7a7a Plugins: Fix emoji positioning in plugin titles on plugins list table.
Prevents emojis in plugin titles from floating to the front of text when
WordPress uses emoji fallback rendering. When emoji feature detection fails,
WordPress replaces emoji characters with `<img>` elements that were incorrectly
affected by CSS float rules intended for plugin icons.

Updates CSS selectors to target specific icon types (dashicons, icon classes,
and data URI images) rather than all images, ensuring emoji images remain
inline with plugin title text while preserving proper layout for actual
plugin icons.

- Consolidates `.plugins .plugin-title img` and `.plugins .plugin-title .dashicons` rules
- Adds support for `img.dashicons`, `img[class*="icon"]`, and `img[src*="data:image"]` selectors
- Maintains 64px sizing and left float for legitimate plugin icons
- Fixes visual issue where "myplugin❤️wordpress" displayed as "❤️mypluginwordpress"

Props slimndap, ankitkumarshah, sandeepdahiya, sabernhardt, tomdevisser,
debarghyabanerjee, nusrat21, SirLouen, wpfy, hmbashar, klevismiho,
rollybueno, jamesgiroux, jorbin, whyisjake.

Fixes #63120.

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


git-svn-id: http://core.svn.wordpress.org/trunk@60009 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2025-08-26 21:35:26 +00:00
Aaron Jorbin
783dd4b4f4 General: Add polyfills for new PHP 8.5 array functions: array_first and array_last.
This power couple of function is coming in PHP 8.5: array_first and array_last.

For more information on these functions, check out the PHP RFC at https://wiki.php.net/rfc/array_first_last.

Props tusharbharti, jorbin, peterwilsoncc, mukesh27, johnbillion.
Fixes #63853. See #63061.


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


git-svn-id: http://core.svn.wordpress.org/trunk@60008 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2025-08-26 21:31:28 +00:00
TimothyBlynJacobs
d58780fc7d Formatting: Add 'white-space' as an allowed KSES CSS attribute.
The 'white-space' attribute is safe, has wide browser support, and is useful.

Props sukhendu2002, mukesh27, whyisjake..
Fixes #51707.

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


git-svn-id: http://core.svn.wordpress.org/trunk@60007 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2025-08-26 21:08:17 +00:00
whyisjake
72e3ea8ed9 Upgrade/Install: Actually move Hello Dolly plugin to directory structure.
This fixes an issue from [60666] where I neglected to `svn move` the files. 

Follow-up to [60666].

Reviewed by jeremyfelt.

Props swissspidy.

See #53323.



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


git-svn-id: http://core.svn.wordpress.org/trunk@60006 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2025-08-26 21:06:56 +00:00
Adam Silverstein
c0bb2a41c3 Media: improve doc blocks for PNG handling in Imagick.
These changes were inadvertently omitted from [60667].

Props adamsilverstein.


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


git-svn-id: http://core.svn.wordpress.org/trunk@60005 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2025-08-26 21:05:30 +00:00
TimothyBlynJacobs
cd6b5eb48f Customize: Update input_attrs docs for the textarea control.
Props sabenhardt.
See [60662].

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


git-svn-id: http://core.svn.wordpress.org/trunk@60004 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2025-08-26 20:59:22 +00:00
Adam Silverstein
08ef43f295 Media: improve Imagick handling of indexed PNG images with transparency.
Fix an issue where certain transparent PNG images experienced noticeable quality degradation when resized by Imagick. 

Follow up to [60246].

Props elvismdev, SirLouen, siliconforks, nosilver4u, iamshashank.

Fixes #63448.


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


git-svn-id: http://core.svn.wordpress.org/trunk@60003 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2025-08-26 20:57:34 +00:00
whyisjake
f8f84a4173 Upgrade/Install: Move Hello Dolly plugin to directory structure.
Changes the Hello Dolly plugin from a single file structure to a proper plugin directory structure, moving from `hello.php` to `hello-dolly/hello.php` to align with Plugin Handbook Best Practices.

- Adds proper `Text Domain: hello-dolly` header to Hello Dolly plugin
- Updates core files to remove special case handling for `hello.php`
- Updates plugin dependency system to handle new directory structure
- Adds upgrade routine to migrate active plugin references and keep plugin active
- Updates all tests to use new plugin path format `hello-dolly/hello.php`
- Updates build configuration and .gitignore for new directory structure
- Adds `hello.php` to old files list for cleanup during core updates
- Adds `plugins/hello-dolly/` to new bundled directories list

Props afragen, SergeyBiryukov, peterwilsoncc, SirLouen, matt, davidbaumwald, desrosj, hellofromtonya, justinahinon,audrasjb, oglekler, whyisjake.
Fixes #53323.


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


git-svn-id: http://core.svn.wordpress.org/trunk@60002 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2025-08-26 18:41:31 +00:00
nerrad
6096e1d2e5 HTML API: Reliably parse HTML in get_url_in_content()
As part of a larger effort in #63694, this utlizes `WP_HTML_Tag_Processor` instead of regex to parse the string passed into `get_url_in_content`.

As a benefit this also decodes the URL whereas the previous code didn’t, so strings like `http&#x3A;//` will be properly decoded as `http://`.

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

Props dmsnell, jonsurrell, nerrad.
Fixes #63694.
Built from https://develop.svn.wordpress.org/trunk@60665


git-svn-id: http://core.svn.wordpress.org/trunk@60001 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2025-08-26 18:22:32 +00:00
TimothyBlynJacobs
025eab7b5a Coding Standards: Fix spacing in Customize Control.
Props dmsnell.
See [60662].

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


git-svn-id: http://core.svn.wordpress.org/trunk@60000 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2025-08-26 18:18:25 +00:00
Jeremy Felt
634bfa325c Coding Standards: Properly align variable assignment in WP_Block
Removes a new line added as part of [60611] which impacted alignment of variable assignments in `process_block_bindings()`.

See #63168.

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


git-svn-id: http://core.svn.wordpress.org/trunk@59999 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2025-08-26 18:16:32 +00:00
TimothyBlynJacobs
8bd447bc3f Customize: Allow specifying the number of rows for <textarea> inputs.
Previously, the textarea control was forced to use 5 rows. This commit instead applies a default value of 5, but allows for a developer to specify a different number of rows using the input_attrs arg.

Props sirlouen, timhavinga, celloexpressions, sainathpoojary. 
Fixes #47445.

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


git-svn-id: http://core.svn.wordpress.org/trunk@59998 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2025-08-26 17:49:29 +00:00
Sergey Biryukov
1448dc5aa8 Taxonomy: Check the result of get_term() in WP_Term_Query::get_terms().
`get_term()` can return `WP_Error` or `null` on failure, so the result should be verified as a `WP_Term` instance before accessing the `count` property.

This commit prevents a PHP warning if `get_term()` returns `null` for a child term:
{{{
Warning: Attempt to read property "count" on null
}}}

Follow-up to [27458], [37572].

Props josephscott, coleatkinson1, kebbet, jakariaistauk, sabernhardt, westonruter, SergeyBiryukov.
Fixes #63877.
Built from https://develop.svn.wordpress.org/trunk@60661


git-svn-id: http://core.svn.wordpress.org/trunk@59997 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2025-08-26 17:26:29 +00:00
John Blackbourn
ce1c229570 Build/Test Tools: Temporarily pin the PHP 8.3 and 8.4 container images to an earlier digest to work around issues with the newer images.
This pins the images to PHP 8.3.10 and 8.4.11 on Debian Bullseye pending further investigation into the root cause of the certificate verification failure affecting the connection to the database containers.

This also removes memcached from the test matrix pending further investigation into the missing Memcached executable.

Props desrosj, bernhard-reiter, SirLouen, johnbillion.

See #63876
Built from https://develop.svn.wordpress.org/trunk@60660


git-svn-id: http://core.svn.wordpress.org/trunk@59996 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2025-08-26 16:55:31 +00:00
Sergey Biryukov
26312ee9a9 Code Modernization: Replace non-canonical scalar type casts with canonical versions.
PHP 8.5 deprecates four alternative scalar type names in favor of their canonical names:

* `boolean` → `bool`
* `double` → `float`
* `integer` → `int`
* `binary` → `string`

References:
* [https://php.watch/versions/8.5/boolean-double-integer-binary-casts-deprecated PHP.Watch: PHP 8.5: Non-canonical scalar type casts (boolean|double|integer|binary) deprecated]
* [https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_non-standard_cast_names PHP RFC: Deprecations for PHP 8.5: Deprecate non-standard cast names]

Follow-up to [1346], [11875].

Props TobiasBg, swissspidy, SergeyBiryukov.
See #63061.
Built from https://develop.svn.wordpress.org/trunk@60659


git-svn-id: http://core.svn.wordpress.org/trunk@59995 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2025-08-25 13:10:29 +00:00
Sergey Biryukov
58aee83106 Docs: Correct the order of @since and @global tags in some files.
Follow-up to [32642], [32643], [60416].

Props shailu25, mukesh27.
See #63166.
Built from https://develop.svn.wordpress.org/trunk@60658


git-svn-id: http://core.svn.wordpress.org/trunk@59994 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2025-08-24 13:44:32 +00:00
Sergey Biryukov
aeb1e8f940 Security: Set the frame-ancestors directive in send_frame_options_header().
The `X-Frame-Options` HTTP response header is a way of controlling whether and how a document may be loaded inside of a child navigable. For sites using `Content-Security-Policy`, the `frame-ancestors` directive provides more granular control over the same situations.

Includes adding a `headers_sent()` check before sending the headers.

References:
* [https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/X-Frame-Options MDN Web Docs: X-Frame-Options header]
* [https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Content-Security-Policy/frame-ancestors MDN Web Docs: Content-Security-Policy: frame-ancestors directive]

Follow-up to [17826].

Props danielbachhuber, killerbishop, callumbw95, josephscott, nacin, chriscct7, iandunn, SergeyBiryukov.
Fixes #29429.
Built from https://develop.svn.wordpress.org/trunk@60657


git-svn-id: http://core.svn.wordpress.org/trunk@59993 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2025-08-23 14:08:30 +00:00
Sergey Biryukov
41eb91c33b Docs: Correct the type for _WP_Dependency::$args property.
Follow-up to [7970], [25518], [48462].

Props marian1, iamadisingh.
Fixes #63857.
Built from https://develop.svn.wordpress.org/trunk@60656


git-svn-id: http://core.svn.wordpress.org/trunk@59992 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2025-08-22 15:43:44 +00:00
Sergey Biryukov
99744bd4ce XML-RPC: Update specUrl links in IXR_Server and IXR_IntrospectionServer.
As the original URLs are no longer accessible, this commit uses the latest available copy of the corresponding documentation from the Wayback Machine.

Follow-up to [1346], [56167].

Props mayur8991, panchalhimani711, SergeyBiryukov.
Fixes #63848.
Built from https://develop.svn.wordpress.org/trunk@60655


git-svn-id: http://core.svn.wordpress.org/trunk@59991 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2025-08-21 15:00:40 +00:00
Sergey Biryukov
6d1bd80da8 Posts, Post Types: Avoid an extra database query in WP_Post for a negative post ID.
Follow-up to [21559].

Props bor0, akeda, SergeyBiryukov.
Fixes #63850.
Built from https://develop.svn.wordpress.org/trunk@60654


git-svn-id: http://core.svn.wordpress.org/trunk@59990 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2025-08-20 15:01:31 +00:00
John Blackbourn
b745bbc180 Cron API: Correct the documented type and value of the $doing_wp_cron variable.
See #63166
Built from https://develop.svn.wordpress.org/trunk@60653


git-svn-id: http://core.svn.wordpress.org/trunk@59989 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2025-08-20 14:05:31 +00:00
John Blackbourn
3fface44ee HTTP API: Various improvements to the docblocks for HTTP functions.
See #63166

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


git-svn-id: http://core.svn.wordpress.org/trunk@59988 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2025-08-20 12:55:28 +00:00
isabel_brison
92695c72b2 Editor: Include namespace in layout classname for non-core blocks.
Adds block namespace in layout classname so global styles can be built correctly.

Props isabel_brison, wildworks, peroks, rishabhwp.
Fixes #63844, #63839.

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


git-svn-id: http://core.svn.wordpress.org/trunk@59987 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2025-08-20 03:38:33 +00:00
Peter Wilson
9dcb8c0599 Users: Throw specific warning when wp_insert_user() called without user_pass.
Modifies `wp_insert_user()` to throw the warning `The user_pass field is required when creating a new user. The user will need to reset their password before logging in.` when called without the `user_pass` argument defined.

This avoids a mix of warnings being thrown depending on the version of PHP the system is running on, anywhere between zero and three.

To retain backward compatibility the user is created with an empty password. As WordPress does not accept an empty password during authentication, this will require the newly created user complete the password reset process.

Props dd32, hbhalodia, iamadisingh, mindctrl, rollybueno, sheldorofazeroth, shilpaashokan94
Fixes #63770.

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


git-svn-id: http://core.svn.wordpress.org/trunk@59986 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2025-08-19 23:31:31 +00:00
jonsurrell
0ac15a8b8c HTML API: Improve script tag escape state processing.
Addresses some edge cases parsing of script tag contents:

- "<!-->" remains in the unescaped state and does not enter the escaped state.
- Contents in the escaped state that end with "<script" do not enter double-escaped state.
- "\f" (Form Feed) was missing as a tag name terminating character.

Developed in https://github.com/WordPress/wordpress-develop/pull/9397 and https://github.com/WordPress/wordpress-develop/pull/9402.

Props jonsurrell, dmsnell.
See #63738.

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


git-svn-id: http://core.svn.wordpress.org/trunk@59985 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2025-08-19 19:09:31 +00:00
jonsurrell
9ab3854c4c Editor: Ensure preloading middleware JSON is correctly encoded.
Adds the appropriate JSON flags to `wp_json_encode()` to safely encode data for use in script tags.

Developed in https://github.com/WordPress/wordpress-develop/pull/8145.

Props jonsurrell, bernhard-reiter, dmsnell, artpi, ankitkumarshah, abcd95, dilipbheda, sainathpoojary, shanemuir.
Fixes #62797.

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


git-svn-id: http://core.svn.wordpress.org/trunk@59984 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2025-08-19 18:52:30 +00:00
jonsurrell
4f8fc714a4 HTML API: Fix typo in indicated_compatibility_mode.
Developed in https://github.com/WordPress/wordpress-develop/pull/9401.

Follow-up to [60540].

Props jonsurrell, dmsnell.
Fixes #63391.

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


git-svn-id: http://core.svn.wordpress.org/trunk@59983 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2025-08-19 15:08:31 +00:00
Sergey Biryukov
69f8f6ecf6 Coding Standards: Sanitize input values in wp-trackback.php.
Follow-up to [4676], [12284], [23594], [53719].

Props utsav72640, mukesh27, ankitmaru, dhruvang21, SergeyBiryukov.
Fixes #58511.
Built from https://develop.svn.wordpress.org/trunk@60646


git-svn-id: http://core.svn.wordpress.org/trunk@59982 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2025-08-19 12:30:31 +00:00
joedolson
304382e37d Accessibility: Make buttons to add site images look like buttons.
The buttons to add site icons, logos, header images, and background images were designed with a dashed border. This led to confusion with users thinking they were drop regions for image uploads, rather than buttons to trigger an upload.

Change design of upload buttons to clarify expected user interaction.

Props emaildano, afercia, joedolson, ankitkumarshah, logicrays, shailu25.
Fixes #47579.
Built from https://develop.svn.wordpress.org/trunk@60645


git-svn-id: http://core.svn.wordpress.org/trunk@59981 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2025-08-18 20:27:37 +00:00
Sergey Biryukov
e2442c0b5b Users: Remove deprecated user contact methods.
The three default contact methods (AIM, Yahoo IM, Jabber) were removed for new installations in WordPress 3.6.

This commit removes the remaining references from the codebase, as the associated services were discontinued quite a while ago.

The `user_contactmethods` filter is available for adding or removing contact methods.

Follow-up to [23588], [25606].

Props butterflymedia, birgire, Presskopp, yashjawale, SergeyBiryukov.
Fixes #44374.
Built from https://develop.svn.wordpress.org/trunk@60644


git-svn-id: http://core.svn.wordpress.org/trunk@59980 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2025-08-18 12:33:29 +00:00
Sergey Biryukov
db9f74475c Coding Standards: Move count() usage in wp_dashboard_recent_comments().
While the rule to discourage using functions like `count()` in a loop condition is a recommendation/best practice rule from the `WordPress-Extra` ruleset and does not directly apply to WordPress core, this is intended as a minor readability and code clarity improvement.

Follow-up to [10090], [17556], [20609], [26144].

Props krunal265, johnbillion, audrasjb, dhruvang21, SergeyBiryukov.
Fixes #56499.
Built from https://develop.svn.wordpress.org/trunk@60643


git-svn-id: http://core.svn.wordpress.org/trunk@59979 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2025-08-17 16:59:26 +00:00
Sergey Biryukov
669bacd5bd Revisions: Add year to timestamp in revisions comparison interface.
This aims to make it easier to distinguish between revisions from different years.

Follow-up to [23769], [23898], [24520].

Props kgagne, iamadisingh, abcd95, SergeyBiryukov.
Fixes #63816.
Built from https://develop.svn.wordpress.org/trunk@60642


git-svn-id: http://core.svn.wordpress.org/trunk@59978 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2025-08-16 21:53:28 +00:00
Adam Silverstein
1cd68235bb Media: ensure wp_get_attachment_image uses valid user-provided width and height.
Fix a bug introduced in WordPress 6.8.2 (r60415) that led to user supplied values for width and height in the $attr array passed to `wp_get_attachment_image` to be overwritten.

Props rainbowgeek, ocean90, rollybueno, shreya0shrivastava, heybran, mukesh27.
Fixes #63714.

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


git-svn-id: http://core.svn.wordpress.org/trunk@59977 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2025-08-15 19:11:32 +00:00
joedolson
6b2e46fdcd Media: Fix button sizing on Edit Media screen.
On the Edit Media screen, buttons were not all of consistent size. This was caused by custom sizing applied to CSS in the Edit Media panel that was not consistent with other button sizes.

Remove custom sizing and adds class so all Edit Media buttons will match styling of other admin buttons in desktop and mobile viewports.

Props hbhalodia, sabernhardt, sandeepdahiya, mikinc860, mukesh27, joedolson.
Fixes #63559.
Built from https://develop.svn.wordpress.org/trunk@60640


git-svn-id: http://core.svn.wordpress.org/trunk@59976 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2025-08-15 18:16:32 +00:00
Sergey Biryukov
eb32f853f6 Quick/Bulk Edit: Check if post status is set in wp_ajax_inline_save().
This aims to avoid a PHP warning if the status value is missing in the request.

Follow-up to [8951], [9083].

Props bor0, jorbin, SergeyBiryukov.
Fixes #63622.
Built from https://develop.svn.wordpress.org/trunk@60639


git-svn-id: http://core.svn.wordpress.org/trunk@59975 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2025-08-15 11:01:30 +00:00
joedolson
214a011d89 Media: Fix button focus visibility in media uploads.
Following [r58279], the focus outline on the Edit button after uploading media was partially cut off. Adjust margin and padding to ensure the outline is visible, while also supporting appropriate word wrapping on long file names.

Props dilipbheda, karthikeya01, sabernhardt, narenin, zunaid321, Marius84, ankitkumarshah,  riddhidave, dilip2615, SirLouen, Presskopp, joedolson.
Fixes #63239.
Built from https://develop.svn.wordpress.org/trunk@60637


git-svn-id: http://core.svn.wordpress.org/trunk@59973 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2025-08-14 23:08:34 +00:00
joedolson
60cb3d6db9 Administration: Remove obsolete placeholder styles.
Remove the browser-prefixed placeholder styling `-ms-input-placeholder` and custom opacity for `-moz-placeholder`. `--ms-input-placeholder` is no longer used by any supported browsers and Firefox now uses `color-mix` to set placeholder colors instead of reduced opacity.

Props afercia, abcd95, sabernhardt, aialvi, joedolson.
Fixes #63030.
Built from https://develop.svn.wordpress.org/trunk@60636


git-svn-id: http://core.svn.wordpress.org/trunk@59972 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2025-08-14 21:37:26 +00:00
Sergey Biryukov
1c777979ed REST API: Correct error handling in WP_REST_Server::serve_batch_request_v1().
This aims to avoid a fatal error when hitting the batch request endpoint with a malformed URL.

Follow-up to [49252].

Props bor0, SirLouen, SergeyBiryukov.
Fixes #63502.
Built from https://develop.svn.wordpress.org/trunk@60635


git-svn-id: http://core.svn.wordpress.org/trunk@59971 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2025-08-14 21:16:35 +00:00
davidbaumwald
f63d38c151 Users: Fire wp_set_password action when creating or updating a user's password.
Various filters and actions fire during user creation and editing, making available all manner of user data to be acted upon by custom code.  However, a user's password was not included in the data that was made available.

This change now fires an existing action, `wp_set_password`, during initial user creation and when an existing user's password is updated. 

Props ChloeD, scribu, dd32, pento, chriscct7, johnbillion, logicrays, nimeshatxecurify.
Fixes #22114.
Built from https://develop.svn.wordpress.org/trunk@60634


git-svn-id: http://core.svn.wordpress.org/trunk@59970 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2025-08-13 20:14:28 +00:00
dmsnell
2191d0443c HTML API: Make WP_HTML_Processor::serialize_token() public.
The serialize_token() method was added in WordPress 6.7.0 as a protected member on the WP_HTML_Processor class. It wasn’t clear at the time of merging if it would be necessary to expose it as a public method. However, since that time a number of experiments have led to the conclusion that it would be very valuable to do so.

This patch opens up the method for invocation from the outside, trivializing the generation of normative HTML subspans from a parent document.

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

Follow-up to [59076].

Props dmsnell, jonsurrell.
Fixes #38044.

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


git-svn-id: http://core.svn.wordpress.org/trunk@59969 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2025-08-13 17:58:28 +00:00
Sergey Biryukov
090fb72df0 Export: Split the query for post authors in wxr_authors_list() into smaller chunks.
This aims to avoid a fatal error when attempting to export content on larger WP instances with a lot of data.

Follow-up to [15961], [28731].

Props bor0, SirLouen, SergeyBiryukov.
Fixes #63503.
Built from https://develop.svn.wordpress.org/trunk@60632


git-svn-id: http://core.svn.wordpress.org/trunk@59968 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2025-08-13 16:28:31 +00:00
dmsnell
246e75a2b7 Follow-up: Add wp_is_valid_utf8() for normalizing UTF-8 checks.
When the `seemsUtf8` test file was removed, the file was left in subversion as an empty file. This patch removes the file.

Discussed in https://core.trac.wordpress.org/ticket/38044

Follow-up to [60630].

Props dmsnell, johnbillion.
See #38044.

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


git-svn-id: http://core.svn.wordpress.org/trunk@59967 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2025-08-12 18:25:24 +00:00
dmsnell
ede3a79f96 Add wp_is_valid_utf8() for normalizing UTF-8 checks.
There are several existing mechanisms in Core to determine if a given string contains valid UTF-8 bytes or not. These are spread out and depend on which extensions are installed on the running system and what is set for `blog_charset`. The `seems_utf8()` function is one of these mechanisms.

`seems_utf8()` does not properly validate UTF-8, unfortunately, and is slow, and the purpose of the function is veiled behind its name and historic legacy.

This patch deprecates `seems_utf()` and introduces `wp_is_valid_utf8()`; a new, spec-compliant, efficient, and focused UTF-8 validator. This new validator defers to `mb_check_encoding()` where present, otherwise validating with a pure-PHP implementation. This makes the spec-compliant validator available on all systems regardless of their runtime environment.

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

Props dmsnell, jonsurrell, jorbin.
Fixes #38044.

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


git-svn-id: http://core.svn.wordpress.org/trunk@59966 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2025-08-12 18:15:36 +00:00
Sergey Biryukov
08d1cf7509 Database: Update default DB_CHARSET to utf8mb4 in wp-config-sample.php.
`utf8mb4` is the complete UTF-8 implementation in MySQL, supporting the full range of Unicode characters by using up to 4 bytes per character. This includes characters outside the Basic Multilingual Plane, such as emoji and supplementary characters. `utf8mb4` ensures full compatibility with modern text content and diverse character sets.

As of WordPress 4.2, on both new and existing installations, WordPress would automatically upgrade database tables to `utf8mb4` on compatible servers (MySQL 5.5.3 or later). However, the default `DB_CHARSET` value during setup was still set to `utf8` for compatibility with older MySQL versions.

As of WordPress 6.5, the minimum required MySQL version is 5.5.5, so the default can be updated to `utf8mb4`.

Follow-up to [30345], [31349], [57173], [57926].

Props bchecketts, JavierCasares, dmsnell, SergeyBiryukov.
Fixes #48285.
Built from https://develop.svn.wordpress.org/trunk@60629


git-svn-id: http://core.svn.wordpress.org/trunk@59965 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2025-08-12 14:47:31 +00:00
John Blackbourn
bb508374c8 Build/Test Tools: Adjust various jobs names in the GitHub Actions workflows to remove duplication and improve grouping in the UI when they run.
Props desrosj, mukesh27, johnbillion

See #63170
Built from https://develop.svn.wordpress.org/trunk@60628


git-svn-id: http://core.svn.wordpress.org/trunk@59964 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2025-08-12 09:19:29 +00:00
dmsnell
54c562ac5b Convert two source files to UTF-8
The files in this commit have previously contained text encoded as Windows-1252 (commonly mistaken for latin1/ISO-8859-1), in ways that present invalid UTF-8 bytes.

This commit converts the encodings to UTF-8, which resolves the encoding issues. While the whole-posts document could be argued to be intentionally Windows-1252, there was no obvious evidence that this was more than an historic legacy. The JavaScript file, however, definitely ought to be UTF-8.

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

Props dmsnell, swisspidy.
Fixes #63815.

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


git-svn-id: http://core.svn.wordpress.org/trunk@59963 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2025-08-12 03:56:27 +00:00
desrosj
b28e86f5e7 Build/Test Tools: Use newer runner images for MacOS & Windows.
GitHub is in the process of deploying an update to their MacOS and Windows GitHub Actions runners that changes the `-latest` tag to point to `macos-15` and `windows-2025`. Once this completes, the number of available runners for the previous version will decline and could result in longer queues.

This updates the build process testing workflow to test against these new versions.

Prop johnbillion. 
See #63170.
Built from https://develop.svn.wordpress.org/trunk@60626


git-svn-id: http://core.svn.wordpress.org/trunk@59962 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2025-08-12 00:21:27 +00:00
John Blackbourn
8fe3cb3703 Build/Test Tools: Ensure a change to the Node version always runs relevant test workflows.
Props johnbillion, desrosj

See #63170
Built from https://develop.svn.wordpress.org/trunk@60625


git-svn-id: http://core.svn.wordpress.org/trunk@59961 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2025-08-11 17:06:24 +00:00
John Blackbourn
b45c2d8c98 Build/Test Tools: Add some further missing permissions to the GitHub Actions workflows.
These permissions are not required for a public repo but are required for a private repo, for example a private fork.

Props johnbillion, desrosj

Follow-up to r60612.

See #63170
Built from https://develop.svn.wordpress.org/trunk@60624


git-svn-id: http://core.svn.wordpress.org/trunk@59960 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2025-08-11 16:44:28 +00:00
Sergey Biryukov
66506c9fd6 External Libraries: Upgrade PHPMailer to version 6.10.0.
This is a feature and maintenance release introducing full support for [https://www.rfc-editor.org/rfc/rfc6531 RFC 6531 SMTPUTF8], meaning that plugin or theme developers are now free to use Unicode characters in email addresses, such as `JøeÜser@example.com`, without any complicated encoding schemes. Using this feature requires sending through a mail server that advertises support for SMTPUTF8. For full details see [https://github.com/PHPMailer/PHPMailer/blob/master/SMTPUTF8.md SMTPUTF8.md].

This commit also includes the parts of PHPMailer not previously bundled with core, specifically the DSNConfigurator, OAuth, and POP3 classes, so that plugin developers could use those extended features without including their own versions of the library.

Including the full library aims to make it easier (and faster) for core to update in case of security issues, and to provide more flexibility and security for plugins and (by extension) users of WordPress.

References:
* [https://github.com/PHPMailer/PHPMailer/releases/tag/v6.10.0 PHPMailer 6.10.0 release notes]
* [https://github.com/PHPMailer/PHPMailer/compare/v6.9.3...v6.10.0 Full list of changes in PHPMailer 6.10.0]

Follow-up to [54937], [55557], [56484], [57137], [59246], [59481].

Props agulbra, Ipstenu, JeffMatson, lukecavanagh, dd32, Otto42, JeffMatson, MattyRob, desrosj, SirLouen, SergeyBiryukov.
Fixes #39714, #63811.
Built from https://develop.svn.wordpress.org/trunk@60623


git-svn-id: http://core.svn.wordpress.org/trunk@59959 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2025-08-11 16:18:33 +00:00