Commit Graph

51271 Commits

Author SHA1 Message Date
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
Sergey Biryukov
23c1de7d05 Database: Add support for SET STATEMENT in wpdb::get_table_from_query().
MariaDB supports setting various parameters for queries. This commit ensures that `wpdb` can properly retrieve the table name from such queries.

Reference: [https://mariadb.com/docs/server/reference/sql-statements/administrative-sql-statements/set-commands/set-statement MariaDB Documentation: SET STATEMENT].

Follow-up to [30345].

Props dd32.
Fixes #63777.
Built from https://develop.svn.wordpress.org/trunk@60622


git-svn-id: http://core.svn.wordpress.org/trunk@59958 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2025-08-10 21:00:34 +00:00
Sergey Biryukov
a4ffbcc9a9 Docs: Correct @return type for get_post_field().
Follow-up to [6379], [21559], [24490].

Props marian1, rollybueno.
Fixes #63802.
Built from https://develop.svn.wordpress.org/trunk@60621


git-svn-id: http://core.svn.wordpress.org/trunk@59957 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2025-08-09 12:49:34 +00:00
Sergey Biryukov
bc22cb534b Twenty Twenty-Five: Fix typo in font credit URL protocol.
Follow-up to [59146].

Props rollybueno, sabernhardt, dhruvang21, shailu25.
Fixes #63747.
Built from https://develop.svn.wordpress.org/trunk@60620


git-svn-id: http://core.svn.wordpress.org/trunk@59956 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2025-08-08 21:50:31 +00:00
joedolson
90da60fa36 Administration: Reduce mobile item spacing in .misc-pub-section.
On small viewports, the total vertical padding of `.misc-pub-section` was adjusted from 14px to 40px.

This significant different made for difficult reading of information in the Post Publish metabox, the Media details meta box, and the comment editing metabox.

Shift the total vertical padding to 24px to improve the readability of metaboxes on mobile.

Props mikinc860, dhrumilk, debarghyabanerjee, mukesh27, hbhalodia, sabernhardt, joedolson.
Fixes #63571.
Built from https://develop.svn.wordpress.org/trunk@60619


git-svn-id: http://core.svn.wordpress.org/trunk@59955 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2025-08-08 01:57:30 +00:00
Sergey Biryukov
0cf4698be4 Docs: Correct return and parameter types for WP_Block_List methods.
Follow-up to [48159], [56803].

Props marian1.
Fixes #63753.
Built from https://develop.svn.wordpress.org/trunk@60618


git-svn-id: http://core.svn.wordpress.org/trunk@59954 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2025-08-07 14:47:34 +00:00
jonsurrell
f2b80c32ee HTML API: Reduce length checks in skip_script_data.
Apply an optimization to remove several repeated string length checks in `WP_HTML_Tag_Processor::skip_script_data()`.

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

Props jonsurrell, dmsnell.
See #63738.

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


git-svn-id: http://core.svn.wordpress.org/trunk@59953 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2025-08-07 08:33:26 +00:00
jonsurrell
2a29ee2915 KSES: Prevent normalization from unescaping escaped numeric character references.
Fixes an issue where `wp_kses_normalize_entities` would transform inputs like "&amp;#39;" into "&#039;", changing the intended HTML text.

This behavior has present since the initial version of KSES was introduced in [649].

[2896] applied the normalization to post content for users without the "unfiltered_html" capability.

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

Props jonsurrell, dmsnell, sirlouen.
Fixes #63630.

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


git-svn-id: http://core.svn.wordpress.org/trunk@59952 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2025-08-07 08:00:31 +00:00
Peter Wilson
cb8f8282f3 Options, Meta APIs: Test site transients stored correctly.
Adds unit tests to ensure that site transients are stored correctly:

* in `wp_options` on single site installs,
* in `wp_sitemeta` on multisite installs.

Props peterwilsoncc, rollybueno.
See #63167.

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


git-svn-id: http://core.svn.wordpress.org/trunk@59951 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2025-08-07 04:27:34 +00:00
Peter Wilson
216a4157c9 Upgrade/Install: Reduce number of DB queries populating roles.
Reduces the number of database queries made when populating roles during install/multisite site creation by 344 (347 queries down to 3).

`populate_roles()` has been modified to prevent an individual database query each time a role or capability is added to the `WP_Roles` object. Instead the roles option, `{$wpdb->prefix}user_roles` is updated once at the end of the function call.

Introduces a test to ensure that updating the roles option via `WP_Roles` and updating the option in the manner now used by `populate_roles()` results in the same capabilities been applied to a role.

Props fliespl, johnjamesjacoby, ocean90, realloc, rishabhwp, sainathpoojary, sirlouen, spacedmonkey, swissspidy.
Fixes #37687.


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


git-svn-id: http://core.svn.wordpress.org/trunk@59950 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2025-08-07 01:34:33 +00:00
audrasjb
2ef90d3315 Administration: Avoid rendering empty bottom tablenav container when pagination is hidden.
This changeset removes the bottom `tablenav` container on taxonomy term list screens when it contains a hidden `.tablenav-pages.no-pages` element, to prevent unnecessary vertical spacing when no tags exist.

Props sainathpoojary, dilipbheda, audrasjb, abcd95, dhruvang21, SirLouen.
Fixes #63369.


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


git-svn-id: http://core.svn.wordpress.org/trunk@59949 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2025-08-06 22:37:30 +00:00
John Blackbourn
16ef43ce26 Build/Test Tools: Add some 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

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


git-svn-id: http://core.svn.wordpress.org/trunk@59948 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2025-08-06 18:44:27 +00:00
Bernhard Reiter
a8a35da6b7 Block Bindings: Add filter to set supported block attributes.
Add a new filter, `block_bindings_supported_attributes_{$block_type}`, that allows customizing which of a block's attributes can be connected to a Block Bindings source.

Props bernhard-reiter, gziolo, maxschmeling.
Closes #62090.
Built from https://develop.svn.wordpress.org/trunk@60611


git-svn-id: http://core.svn.wordpress.org/trunk@59947 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2025-08-06 18:22:31 +00:00