As a follow-up to [59460], make sure that admin strings are loaded when switching locales for auto update notification emails, as those strings are in a separate translation file.
Props benniledl, swissspidy.
Fixes#62496.
git-svn-id: https://develop.svn.wordpress.org/trunk@59478 602fd350-edb4-49c9-b593-d223f7449a82
The Interactivity API tries to align client and server rendering so that the behavior is the same. Adds missing handling for `.length` to directives processing on the server on strings and numeric arrays which is inherently supported through JavaScript language on the client.
Props jonsurrell, gziolo, luisherranz.
Fixes#62582.
git-svn-id: https://develop.svn.wordpress.org/trunk@59477 602fd350-edb4-49c9-b593-d223f7449a82
This change hides the top border of the first comment in the latest comments block, so that the design
in the editor and the front looks the same.
Props viralsampat, sabernhardt, aishwarryapande, parthvataliya, imranhasanraaz.
Fixes#62282.
git-svn-id: https://develop.svn.wordpress.org/trunk@59476 602fd350-edb4-49c9-b593-d223f7449a82
This gives users another option when selecting how dates are displayed on their site. This change is relevant for better localization, providing more date format choices for users in regions where this format is common.
The `array_unique()` call ensures that if this format was already added by a plugin or theme, it won't be duplicated.
Follow-up to [9131], [22299], [28820], [28848].
Props Daedalon, pbearne, fierevere, im3dabasia1, SergeyBiryukov.
Fixes#55685.
git-svn-id: https://develop.svn.wordpress.org/trunk@59475 602fd350-edb4-49c9-b593-d223f7449a82
Add a new $size parameter to the wp_editor_set_quality filter. $size is an array with 'width' and 'height' keys. Developers can use this information to set image quality based on the image size.
Props adamsilverstein, joemcgill, Mte90, codekraft, birgire, azaozz, sppramodh.
Fixes#54648.
git-svn-id: https://develop.svn.wordpress.org/trunk@59473 602fd350-edb4-49c9-b593-d223f7449a82
This addresses several instances of `gmdate( 'w' )` being used directly as an integer, when it's actually a numeric string. The issue is remediated by casting the value to `int` before use.
Affected functions:
* `get_calendar()`
* `get_weekstartend()`
Follow-up to [508], [1632].
Props justlevine.
See #52217.
git-svn-id: https://develop.svn.wordpress.org/trunk@59471 602fd350-edb4-49c9-b593-d223f7449a82
The post author and post date did not have space between them and the post content. This brings in 1em of top margin. Of note is that this only is if the first element is a paragraph that the issue was caused.
Props abcd95, sabernhardt, desrosj, sainathpoojary, viralsampat.
Fixes#62243.
git-svn-id: https://develop.svn.wordpress.org/trunk@59470 602fd350-edb4-49c9-b593-d223f7449a82
The current implementation of `create_fragment` (and the underlying `create_fragment_at_current_node`) allows passing in a context that might result in a tree that cannot be represented by HTML. For example, a user might use `<p>` as context, and attempt to create a fragment that also consists of a paragraph element, `<p>like this`. This would result in a paragraph node nested inside another -- something that can never result from parsing HTML.
To prevent this, this changeset makes `create_fragment_at_current_node` private and limits `create_fragment` to only `<body>` as context, while a comprehensive solution to allow other contexts is being worked on.
Follow-up to [59444], [59467].
Props jonsurrell, dmsnell, bernhard-reiter.
Fixes#62584.
git-svn-id: https://develop.svn.wordpress.org/trunk@59469 602fd350-edb4-49c9-b593-d223f7449a82
This changeset modifies `WP_HTML_Processor::create_fragment( $html, $context )` to use a full processor and `create_fragment_at_node` instead of the other way around. This makes more sense and makes the main factory methods more clear, where the state required for fragments is set up in `create_fragment_at_node` instead of in both `create_fragment` and `create_fragment_at_current_node`.
This allows for more HTML contexts to be provided to the basic `create_fragment` where the provided context HTML is appended to `<!DOCTYPE html>`, a full processor is created, the last tag opener is found, and a fragment parser is created at that node via `create_fragment_at_current_node`.
The HTML5lib tests are updated accordingly to use this new method to create fragments.
Props jonsurrell, dmsnell, bernhard-reiter.
Fixes#62584.
git-svn-id: https://develop.svn.wordpress.org/trunk@59467 602fd350-edb4-49c9-b593-d223f7449a82
The file could declare its own `$theme` variable, which would override the one used in the `foreach` loop.
To prevent this, call `wp_get_theme()` before loading the file and store the instance in a different variable.
Props neo2k23, swissspidy.
See #62244.
git-svn-id: https://develop.svn.wordpress.org/trunk@59466 602fd350-edb4-49c9-b593-d223f7449a82
This addresses two instances of the (numeric string) `gmdate( 'Z' )` being added to an `int` value.
Affected functions:
* `upgrade_110()`
* `WP_Date_Query::validate_date_values()`
Follow-up to [942], [29925], [45424].
Props justlevine.
See #52217.
git-svn-id: https://develop.svn.wordpress.org/trunk@59465 602fd350-edb4-49c9-b593-d223f7449a82
Fixes a missing "D" in the character list used by strspn to find tag openers, causing tags starting with D to be skipped by the tag processor in some circumstances.
Follow-up to [58613].
Props jonsurrell, santosguillamot, wongjn, cbravobernal.
Fixes#62522.
git-svn-id: https://develop.svn.wordpress.org/trunk@59464 602fd350-edb4-49c9-b593-d223f7449a82
The HTML Processor State `context_node` is redundant and can be deprecated. The property has been superseded by `WP_HTML_Processor->context_node` since [58304].
Props jonsurrell, gziolo.
Fixes#62518.
git-svn-id: https://develop.svn.wordpress.org/trunk@59463 602fd350-edb4-49c9-b593-d223f7449a82
This addresses two instances of the (numeric string) return value from `wp_count_terms()` being used directly in `ceil()`, which expects an `int|float`.
Affected methods:
* `WP_Sitemaps_Taxonomies::get_max_num_pages()`
* `wp_nav_menu_item_taxonomy_meta_box()`
Reference: [https://www.php.net/manual/en/function.ceil.php PHP Manual: ceil()].
Follow-up to [14248], [14291], [14569], [14943], [48072], [57648].
Props justlevine.
See #52217.
git-svn-id: https://develop.svn.wordpress.org/trunk@59462 602fd350-edb4-49c9-b593-d223f7449a82
In #34114, just-in-time (JIT) translation loading was implemented for projects hosted on WordPress.org. This is now expanded to all other plugins/themes.
Projects with a custom `Text Domain` and `Domain Path` header no longer need to call `load_plugin_textdomain()` or `load_theme_textdomain()`.
This reduces the risk of calling them too late, after some translation calls already happened, and generally makes it easier to properly internationalize a plugin or theme.
This moves the `get_plugin_data()` from `wp-admin/includes/plugin.php` to `wp-includes/functions.php` so it's available during the plugin loading process.
Props swissspidy.
Fixes#62244.
git-svn-id: https://develop.svn.wordpress.org/trunk@59461 602fd350-edb4-49c9-b593-d223f7449a82
If sending an auto update email to the site administrator's email address, look up if a user with the same email exists and switch to that user's locale. If not, explicitly switches to the site locale.
This is a follow-up to [59128] where this was previously added for other types of emails.
Props benniledl, swissspidy.
Fixes#62496.
git-svn-id: https://develop.svn.wordpress.org/trunk@59460 602fd350-edb4-49c9-b593-d223f7449a82
This resolves an issue where the string `$expired` value is used both in a comparison and addition with integer values.
Follow-up to [6387], [28424], [45590].
Props justlevine.
See #52217.
git-svn-id: https://develop.svn.wordpress.org/trunk@59459 602fd350-edb4-49c9-b593-d223f7449a82
It is possible to supply a set of default query `args` to `register_taxonomy()` which will be used when querying a list of terms -- for example, `orderby` in order to specify how the resulting list of terms should be sorted.
The Terms REST API controller previously respected these default query args only if the request included a post ID. This changeset makes it so that the default args will also be respected if no post ID is provided.
Props bernhard-reiter, jsnajdr.
Fixes#62500.
git-svn-id: https://develop.svn.wordpress.org/trunk@59458 602fd350-edb4-49c9-b593-d223f7449a82
`$args` is defined in the immediately preceding code block, and only contains non-integer keys, so there is never an `$args[0]` to unset.
Follow-up to [44933].
Props justlevine.
See #52217.
git-svn-id: https://develop.svn.wordpress.org/trunk@59456 602fd350-edb4-49c9-b593-d223f7449a82
This updates `WP_Theme_JSON::get_svg_filters()` to use `WP_Duotone::get_filter_svg_from_preset()` instead of the `wp_get_duotone_filter_svg()` function, deprecated in WordPress 6.3.
Follow-up to [52757], [56101].
Props justlevine.
See #52217.
git-svn-id: https://develop.svn.wordpress.org/trunk@59455 602fd350-edb4-49c9-b593-d223f7449a82
This addresses two instances where a function that is documented as returning `{someType}|null` doesn't explicitly return `null`.
Affected functions:
* `array_key_first()`
* `WP_REST_Posts_Controller::handle_terms()`
Follow-up to [38832], [52038].
Props justlevine.
See #52217.
git-svn-id: https://develop.svn.wordpress.org/trunk@59453 602fd350-edb4-49c9-b593-d223f7449a82
This extracts the logic responsible for parsing the `.version-support-*.json` files and returning a list of supported PHP and MySQL versions for a given branch of WordPress into a reusable workflow so that other workflows can make use of the functionality without repeating code.
See #62221.
git-svn-id: https://develop.svn.wordpress.org/trunk@59452 602fd350-edb4-49c9-b593-d223f7449a82
All JSON files in the theme should be pinned to the appropriate schema version, not just `theme.json`.
Follow up to [59448].
Props im3dabasia1, poena.
Fixes#62455.
git-svn-id: https://develop.svn.wordpress.org/trunk@59451 602fd350-edb4-49c9-b593-d223f7449a82
Prevent fragments from being created at tag closers.
Follow-up to [59444].
Props jonsurrell, bernhard-reiter.
Fixes#62357.
git-svn-id: https://develop.svn.wordpress.org/trunk@59450 602fd350-edb4-49c9-b593-d223f7449a82
Adds a new function, `wp_render_empty_block_template_warning`, that renders a warning for logged-in users when a block template is empty.
Reviewed by get_dave, richtabor.
Props vcanales, mikachan, peterwilsoncc, richtabor, get_dave, mrfoxtalbot, matveb, arielmaidana, seifradwane, annezazu.
Fixes#62053.
git-svn-id: https://develop.svn.wordpress.org/trunk@59449 602fd350-edb4-49c9-b593-d223f7449a82
Each theme’s `theme.json` schema version should be pinned to the version that was valid at the time it was released.
Props im3dabasia1, poena, mukesh27.
Fixes#62455.
git-svn-id: https://develop.svn.wordpress.org/trunk@59448 602fd350-edb4-49c9-b593-d223f7449a82
HTML Fragment parsing always happens with a context node, which may impact how a fragment of HTML is parsed. HTML Fragment Processors can be instantiated with a `BODY` context node via `WP_HTML_Processor::create_fragment( $html )`.
This changeset adds a static method called `create_fragment_at_current_node( string $html_fragment )`. It can only be called when the processor is paused at a `#tag`, with some additional constraints:
- The opening and closing tags must appear in the HTML input (no virtual tokens).
- No "self-contained" elements are allowed ( `IFRAME`, `SCRIPT`, `TITLE`, etc.).
If successful, the method will return a `WP_HTML_Processor` instance whose context is inherited from the node that the method was called from.
Props jonsurrell, bernhard-reiter, gziolo.
Fixes#62357.
git-svn-id: https://develop.svn.wordpress.org/trunk@59444 602fd350-edb4-49c9-b593-d223f7449a82
This allows the full error message to be shown from the connection attempt instead of a generic error message.
Fixes#62382
git-svn-id: https://develop.svn.wordpress.org/trunk@59443 602fd350-edb4-49c9-b593-d223f7449a82
This adds an `! empty()` check for classnames and declarations to avoid calling array_merge() with an empty value.
Props mukesh27, ramonopoly, aaronrobertshaw.
Fixes#62317.
git-svn-id: https://develop.svn.wordpress.org/trunk@59442 602fd350-edb4-49c9-b593-d223f7449a82
This updates the conditions added in [59370] to skip unnecessary pull request comments when Dependabot is the opening contributor to check for the correct `github.actor` value.
Follow up to [59380].
See #62221.
git-svn-id: https://develop.svn.wordpress.org/trunk@59441 602fd350-edb4-49c9-b593-d223f7449a82
Includes:
* Moving the comments directly above `wp.i18n._x()` so that they can be picked up properly.
* Simplifying the context to avoid unnecessarily translating the string twice for the same use case.
* Using the established translator comments format for consistency.
Follow-up to [59428].
See #62402.
git-svn-id: https://develop.svn.wordpress.org/trunk@59431 602fd350-edb4-49c9-b593-d223f7449a82
When `load_*_textdomain()` functions are called after WordPress has already attempted just-in-time loading of translations, nothing happens.
This updates the related logic to retry translation loading when a custom path is set to ensure all translations are available.
Additionally, this also fixes cases where an `en_US.mo` file is provided with non-English strings to override the default language.
Follow up to [59157].
Props swissspidy, peterwilsoncc, desrosj, apermo, sergeybiryukov, wildworks, tigriweb, twvania, looswebstudio, stimul, audrasjb, finntown, bluantinoo, timwhitlock, albigdd.
See #62337.
git-svn-id: https://develop.svn.wordpress.org/trunk@59430 602fd350-edb4-49c9-b593-d223f7449a82
Improvements were made in 6.7 to ensure that salts stored in the database were primed more efficiently.
The logic added to accomplish this suffered from an edge case where array indexes were unexpectedly missing when `wp_salt()` was called recursively.
Follow up to [58837].
Props juliobox, ankitkumarshah, dilipbheda, johnbillion, joemcgill, desrosj.
Fixes#62424.
git-svn-id: https://develop.svn.wordpress.org/trunk@59427 602fd350-edb4-49c9-b593-d223f7449a82
Wrap three untranslatable strings in nav menus in JS translation functions.
Follow up to [59265].
Props juliemoynat, swissspidy, yogeshbhutkar, sergeybiryukov, desrosj, tobifjellner, audrasjb, joedolson.
Fixes#62402.
git-svn-id: https://develop.svn.wordpress.org/trunk@59426 602fd350-edb4-49c9-b593-d223f7449a82
The Learn WordPress website is supposed to automatically redirect to the correct locale according to the browser's language settings, however that may not work as expected in some cases.
This commit brings consistency with the other WordPress.org links, which can be localized as appropriate.
Follow-up to [56720].
Props timse201, ruturajraval2305, yogeshbhutkar, ajayghaghretiya-multidots, swissspidy, sabernhardt, im3dabasia1, mukesh27.
Fixes#62459.
git-svn-id: https://develop.svn.wordpress.org/trunk@59425 602fd350-edb4-49c9-b593-d223f7449a82
In [59138], the login screens were updated to change the `h1` heading from the logo to screen-reader hidden text. Along with that HTML change, we changed the CSS selectors from `.login h1` to `.login .wp-login-logo`. This unnecessary change increased specificity and broke the CSS selectors used by a wide variety of plugins to replace the login logo.
Commit reverts the change in selector back to using the `.login h1` pattern.
Props leecollings, sabernhardt, im3dabasia1, roytanck, sailpete, joedolson.
Fixes#62410.
git-svn-id: https://develop.svn.wordpress.org/trunk@59424 602fd350-edb4-49c9-b593-d223f7449a82
The HTML API `::next_tag` method now performs case-insensitive matching when searching for tags by name. For example, searching for 'DIV' will match both '<div>' and '<DIV>' tags.
Props jonsurrell, dmsnell.
Fixes#62427.
git-svn-id: https://develop.svn.wordpress.org/trunk@59422 602fd350-edb4-49c9-b593-d223f7449a82
In the Modern color scheme, the font color on hover in the admin bar is bright green. However, in the WordPress.org site itself, the color used is Blueberry 2. This commits aligns both colors on the more balanced Blueberry color.
Props fushar, Joen.
Fixes#62219.
git-svn-id: https://develop.svn.wordpress.org/trunk@59419 602fd350-edb4-49c9-b593-d223f7449a82
An `$include_node_paths_only` option to `get_block_nodes()` was introduced to improve performance.
When set to `true`, this option tells the function to only return paths, and not selectors, for consumers that only needed paths to style values.
For one of the conditional blocks, block style variations wasn't included.
This commit adds them to the array of paths following the existing model `$node[]['path' => [], 'variations' => ['path' => []]]`.
Follow-up to [61858].
Props aaronrobertshaw, ramonopoly.
Fixes #62399.
git-svn-id: https://develop.svn.wordpress.org/trunk@59418 602fd350-edb4-49c9-b593-d223f7449a82
Based on the user agent stylesheet rules outlined in https://html.spec.whatwg.org/multipage/rendering.html#img-contain-size, images that have `sizes=auto` while applying `width: auto` or `width: fit-content` would be constrained to only 300px width.
This changeset overrides said user agent stylesheet rule with a much larger constraint, to avoid the problem.
Additionally, it introduces a filter `wp_img_tag_add_auto_sizes` which can be used to opt out of the functionality, as an additional measure.
Props joemcgill, flixos90, dooperweb, SirLouen, azaozz, mukesh27, apermo.
Fixes#62413.
See #61847, #62345.
git-svn-id: https://develop.svn.wordpress.org/trunk@59415 602fd350-edb4-49c9-b593-d223f7449a82
Support for uploading AVIF was added in [57524]. A new block of conditional logic was added determine which function should be used to create the new image file that resulted in these expensive functions being run twice.
This combines the two conditional logic to ensure the appropriate function is only run once regardless of format.
Props adamsilverstein, glynnquelch.
Fixes#62331.
git-svn-id: https://develop.svn.wordpress.org/trunk@59413 602fd350-edb4-49c9-b593-d223f7449a82
This is more consistent with other strings and occurrences of this string.
Props juanfra, joen, narenin, mukesh27.
See #62414.
git-svn-id: https://develop.svn.wordpress.org/trunk@59412 602fd350-edb4-49c9-b593-d223f7449a82