`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
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
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
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
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
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
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
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
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
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
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
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
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
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
`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
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
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
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
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
Fixes an issue where `wp_kses_normalize_entities` would transform inputs like "'" into "'", 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
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
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
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