WordPress/wp-includes
Bernhard Reiter 1b6e00c306 Block Hooks: Respect `"multiple": false` in hooked blocks.
If a prospective hooked block has its `multiple` block-supports field set to `false` (thus allowing only one instance of the block to be present), ensure that:

1. Only one instance of the block will be inserted if it's not yet present in the current context.
2. The block will not be inserted at all if an instance of it is already present in the current context.

As always in Block Hooks parlance, "context" denotes the containing template, template part, pattern, or navigation post that a hooked block is supposed to be inserted into.

The markup of a webpage that uses a Block Theme typically comprises a number of such contexts -- one template and any number of template parts, patterns, and navigation posts. Note that the limitation imposed by this changeset only applies on a per-context basis, so it's still possible that the resulting page contains more than one instance of a hooked block with `"multiple": false` set, as each context could contribute up to one such instance.

Props bernhard-reiter, jonsurrell, gziolo.
Fixes #61902.
Built from https://develop.svn.wordpress.org/trunk@59124


git-svn-id: http://core.svn.wordpress.org/trunk@58520 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-30 12:23:17 +00:00
..
ID3
IXR Code Modernization: Remove xml_set_object() in IXR_Message::parse(). 2024-09-18 18:04:14 +00:00
PHPMailer
Requests
SimplePie
Text Code Modernization: Fix trigger_error() with E_USER_ERROR deprecation in Text_Diff_Op::reverse(). 2024-09-27 18:19:17 +00:00
assets Editor: Update packages for 6.7 Beta 1. 2024-09-30 05:11:31 +00:00
block-bindings
block-patterns Editor: Deprecate "Social links with a shared background color" pattern. 2024-09-13 05:37:16 +00:00
block-supports Block Styles: Ensure unique classname generation for variations 2024-08-29 05:41:10 +00:00
blocks Editor: Update packages for 6.7 Beta 1. 2024-09-30 05:11:31 +00:00
certificates
css Editor: Update packages for 6.7 Beta 1. 2024-09-30 05:11:31 +00:00
customize Administration: Modernize Site Icon UI in settings, customizer. 2024-08-23 22:47:16 +00:00
fonts
html-api HTML API: Switch to HTML namespace when entering Integration Points. 2024-09-27 00:44:19 +00:00
images
interactivity-api Revert [59097] because it was renaming a public method that should be deprecated instead. 2024-09-26 19:37:22 +00:00
js General: Remove `noopener` from links opening in a new tab. 2024-09-30 05:19:16 +00:00
l10n I18N: Add a new way to determine whether a translation is available. 2024-09-17 20:58:15 +00:00
php-compat
pomo
rest-api REST API/Editor: Support post formats in Query Block & Posts API. 2024-09-30 01:19:16 +00:00
sitemaps
sodium_compat Upgrade/Install: Add missing files from the sodium_compat v1.21.1 update. 2024-07-18 13:48:15 +00:00
style-engine Background: add background attachment support to theme.json styles 2024-07-31 02:41:16 +00:00
theme-compat
widgets General: Remove `noopener` from links opening in a new tab. 2024-09-30 05:19:16 +00:00
admin-bar.php Docs: Add changing existing items recommendations to 'admin_bar_menu' action. 2024-09-03 19:58:11 +00:00
atomlib.php Code Modernization: Remove xml_set_object() in AtomParser::parse(). 2024-09-18 21:20:15 +00:00
author-template.php
block-bindings.php
block-editor.php Block bindings: Add canUpdateBlockBindings editor setting. 2024-09-30 06:49:18 +00:00
block-i18n.json
block-patterns.php Editor: Deprecate "Social links with a shared background color" pattern. 2024-09-13 05:37:16 +00:00
block-template-utils.php Block Hooks: `apply_block_hooks_to_content` in Patterns, Templates. 2024-09-27 09:20:18 +00:00
block-template.php Editor: Add plugin template registration API and improve theme overrides for plugin-registered templates 2024-09-20 02:07:12 +00:00
blocks.php Block Hooks: Respect `"multiple": false` in hooked blocks. 2024-09-30 12:23:17 +00:00
bookmark-template.php Date/Time, PHP Compat: Prevent type errors using GMT offset option. 2024-09-18 22:37:15 +00:00
bookmark.php
cache-compat.php
cache.php
canonical.php Docs: Correct inline comment formatting in `redirect_canonical()`. 2024-08-22 23:47:15 +00:00
capabilities.php Role/Capability: Introduce the `user_can_for_blog()` function. 2024-09-30 11:05:15 +00:00
category-template.php
category.php
class-IXR.php
class-avif-info.php
class-feed.php
class-http.php
class-json.php
class-oembed.php
class-phpass.php External Libraries: Update PHPass library. 2024-09-17 21:08:16 +00:00
class-phpmailer.php
class-pop3.php Bootstrap/Load: Ensure uses of set_time_limit are documented why. 2024-09-17 22:41:13 +00:00
class-requests.php
class-simplepie.php
class-smtp.php
class-snoopy.php
class-walker-category-dropdown.php
class-walker-category.php
class-walker-comment.php
class-walker-nav-menu.php General: Remove `noopener` from links opening in a new tab. 2024-09-30 05:19:16 +00:00
class-walker-page-dropdown.php
class-walker-page.php
class-wp-admin-bar.php Toolbar: Move user and recovery menus to a higher priority. 2024-07-18 00:52:17 +00:00
class-wp-ajax-response.php
class-wp-application-passwords.php App Passwords: Don't prevent non-unique App Password names. 2024-09-24 16:40:17 +00:00
class-wp-block-bindings-registry.php Block Bindings: Adds context needed by sources during its processing 2024-09-23 12:35:15 +00:00
class-wp-block-bindings-source.php Block bindings: Adds a filter to customize the output of a block bindings source. 2024-09-03 16:33:15 +00:00
class-wp-block-editor-context.php
class-wp-block-list.php
class-wp-block-parser-block.php
class-wp-block-parser-frame.php Editor: Update packages for 6.7 Beta 1. 2024-09-20 01:55:35 +00:00
class-wp-block-parser.php
class-wp-block-pattern-categories-registry.php
class-wp-block-patterns-registry.php Block Hooks: `apply_block_hooks_to_content` in Patterns, Templates. 2024-09-27 09:20:18 +00:00
class-wp-block-styles-registry.php
class-wp-block-supports.php Editor: Default attribute value not used with `get_block_wrapper_attributes` 2024-09-26 12:47:16 +00:00
class-wp-block-template.php Editor: Add plugin template registration API and improve theme overrides for plugin-registered templates 2024-09-20 02:07:12 +00:00
class-wp-block-templates-registry.php Editor: Add plugin template registration API and improve theme overrides for plugin-registered templates 2024-09-20 02:07:12 +00:00
class-wp-block-type-registry.php
class-wp-block-type.php
class-wp-block.php Block bindings: Ensure block receives __default bindings when render. 2024-09-26 14:51:18 +00:00
class-wp-classic-to-block-menu-converter.php
class-wp-comment-query.php
class-wp-comment.php
class-wp-customize-control.php
class-wp-customize-manager.php Editor: Respect `show_avatars` option in block editor and Customizer. 2024-09-22 22:50:18 +00:00
class-wp-customize-nav-menus.php
class-wp-customize-panel.php
class-wp-customize-section.php
class-wp-customize-setting.php
class-wp-customize-widgets.php
class-wp-date-query.php
class-wp-dependencies.php Script Loader: Refactor Etag generation for concatenated assets. 2024-08-25 23:48:13 +00:00
class-wp-dependency.php
class-wp-duotone.php
class-wp-editor.php
class-wp-embed.php
class-wp-error.php
class-wp-exception.php Code Modernization: Fix trigger_error() with E_USER_ERROR deprecation in wp_trigger_error(). 2024-09-27 19:28:14 +00:00
class-wp-fatal-error-handler.php
class-wp-feed-cache-transient.php
class-wp-feed-cache.php
class-wp-hook.php
class-wp-http-cookie.php
class-wp-http-curl.php
class-wp-http-encoding.php
class-wp-http-ixr-client.php
class-wp-http-proxy.php
class-wp-http-requests-hooks.php
class-wp-http-requests-response.php
class-wp-http-response.php
class-wp-http-streams.php
class-wp-http.php Docs: Various docblock improvements and corrections. 2024-09-11 12:08:19 +00:00
class-wp-image-editor-gd.php
class-wp-image-editor-imagick.php Media: improve speed of AVIF image generation. 2024-09-17 23:29:29 +00:00
class-wp-image-editor.php Media: Automatically convert HEIC images to JPEG 2024-08-05 04:13:15 +00:00
class-wp-list-util.php
class-wp-locale-switcher.php
class-wp-locale.php
class-wp-matchesmapregex.php
class-wp-meta-query.php
class-wp-metadata-lazyloader.php
class-wp-navigation-fallback.php
class-wp-network-query.php
class-wp-network.php Networks and Sites: Set `WP_Network` properties via setters upon creation. 2024-09-13 22:12:15 +00:00
class-wp-object-cache.php Coding Standards: Remove unused return value for `WP_Object_Cache::__set()`. 2024-09-19 12:12:16 +00:00
class-wp-oembed-controller.php
class-wp-oembed.php
class-wp-paused-extensions-storage.php Options, Meta APIs: Explicitly pass `$autoload` parameter to when potentially adding new options. 2024-09-03 18:19:14 +00:00
class-wp-plugin-dependencies.php
class-wp-post-type.php
class-wp-post.php
class-wp-query.php
class-wp-recovery-mode-cookie-service.php
class-wp-recovery-mode-email-service.php
class-wp-recovery-mode-key-service.php Options, Meta APIs: Explicitly pass `$autoload` parameter to when potentially adding new options. 2024-09-03 18:19:14 +00:00
class-wp-recovery-mode-link-service.php
class-wp-recovery-mode.php
class-wp-rewrite.php
class-wp-role.php
class-wp-roles.php Options, Meta APIs: Explicitly pass `$autoload` parameter to when potentially adding new options. 2024-09-03 18:19:14 +00:00
class-wp-script-modules.php Script Loader: Add `@wordpress/a11y` as a Script Module. 2024-09-25 16:51:16 +00:00
class-wp-scripts.php Code Quality: Clarify variable names in dependency classes. 2024-08-10 23:00:14 +00:00
class-wp-session-tokens.php
class-wp-simplepie-file.php
class-wp-simplepie-sanitize-kses.php
class-wp-site-query.php Docs: Various docblock improvements and corrections. 2024-09-11 12:08:19 +00:00
class-wp-site.php
class-wp-styles.php Code Quality: Clarify variable names in dependency classes. 2024-08-10 23:00:14 +00:00
class-wp-tax-query.php
class-wp-taxonomy.php
class-wp-term-query.php Taxonomy: Remove redundant `$taxonomies` value from cache keys used for `WP_Term_Query`. 2024-09-17 17:00:14 +00:00
class-wp-term.php
class-wp-text-diff-renderer-inline.php
class-wp-text-diff-renderer-table.php
class-wp-textdomain-registry.php Docs: Fix docblock alignment for `pre_get_language_files_from_path` filter. 2024-06-28 08:51:16 +00:00
class-wp-theme-json-data.php
class-wp-theme-json-resolver.php Block themes: Enable block-level background image styles 2024-07-24 00:26:14 +00:00
class-wp-theme-json-schema.php
class-wp-theme-json.php Background images: resolve theme.json dynamic ref values and ensure appropriate style default values 2024-08-26 05:40:16 +00:00
class-wp-theme.php Options, Meta APIs: Explicitly pass `$autoload` parameter to when potentially adding new options. 2024-09-03 18:19:14 +00:00
class-wp-token-map.php HTML API: Add PHP type annotations. 2024-07-19 23:44:16 +00:00
class-wp-user-meta-session-tokens.php
class-wp-user-query.php
class-wp-user-request.php
class-wp-user.php
class-wp-walker.php General: Cast `$max_depth` and `$depth` to an integer in the `Walker` class. 2024-07-26 07:56:13 +00:00
class-wp-widget-factory.php
class-wp-widget.php
class-wp-xmlrpc-server.php
class-wp.php Canonical: Redirect when front page's paginated states not found. 2024-09-25 19:37:19 +00:00
class-wpdb.php Code Modernization: handle mysqli_ping() deprecation in wpdb::check_connection(). 2024-09-19 18:56:16 +00:00
class.wp-dependencies.php
class.wp-scripts.php
class.wp-styles.php
comment-template.php Comments: Only type cast a scalar `$comment_id` in `get_comment_author_link()`. 2024-07-25 22:38:16 +00:00
comment.php General: Remove `noopener` from links opening in a new tab. 2024-09-30 05:19:16 +00:00
compat.php Bootstrap/Load: Give more context and warning about editing compat.php. 2024-09-17 23:50:12 +00:00
cron.php Options, Meta APIs: Explicitly pass `$autoload` parameter to when potentially adding new options. 2024-09-03 18:19:14 +00:00
date.php
default-constants.php Coding Standards: Use a human-readable constant in the check for max memory limit. 2024-08-26 20:57:13 +00:00
default-filters.php General: Remove `noopener` from links opening in a new tab. 2024-09-30 05:19:16 +00:00
default-widgets.php
deprecated.php Bootstrap/Load: Ensure uses of set_time_limit are documented why. 2024-09-17 22:41:13 +00:00
embed-template.php
embed.php
error-protection.php
feed-atom-comments.php
feed-atom.php
feed-rdf.php
feed-rss.php
feed-rss2-comments.php
feed-rss2.php
feed.php
fonts.php
formatting.php General: Remove `noopener` from links opening in a new tab. 2024-09-30 05:19:16 +00:00
functions.php General: Remove `noopener` from links opening in a new tab. 2024-09-30 05:19:16 +00:00
functions.wp-scripts.php
functions.wp-styles.php
general-template.php Docs: Remove the `@ignore` tag for `_wp_render_title_tag()`. 2024-09-11 13:27:12 +00:00
global-styles-and-settings.php Block themes: Enable block-level background image styles 2024-07-24 00:26:14 +00:00
http.php Docs: Various docblock improvements and corrections. 2024-09-11 12:08:19 +00:00
https-detection.php
https-migration.php
kses.php KSES: Add `opacity` to the list of safe CSS properties. 2024-07-12 03:36:15 +00:00
l10n.php I18N: Add a new way to determine whether a translation is available. 2024-09-17 20:58:15 +00:00
link-template.php Accessibility: Clarify `aria-label` in pagination links. 2024-09-28 23:36:13 +00:00
load.php Code Modernization: Simplify a conditional in `wp_is_ini_value_changeable()`. 2024-07-06 15:07:08 +00:00
locale.php
media-template.php General: Remove `noopener` from links opening in a new tab. 2024-09-30 05:19:16 +00:00
media.php Media: Add short-circuit filter to `attachment_url_to_postid()`. 2024-09-30 03:19:17 +00:00
meta.php Meta: Add label argument to register_meta function 2024-09-16 11:33:38 +00:00
ms-blogs.php
ms-default-constants.php
ms-default-filters.php
ms-deprecated.php
ms-files.php
ms-functions.php Options, Meta APIs: Explicitly pass `$autoload` parameter to when potentially adding new options. 2024-09-03 18:19:14 +00:00
ms-load.php
ms-network.php
ms-settings.php
ms-site.php Docs: Various docblock improvements and corrections. 2024-09-11 12:08:19 +00:00
nav-menu-template.php
nav-menu.php Menus: Check if taxonomy term exists in `wp_update_nav_menu_item()`. 2024-08-05 19:00:19 +00:00
option.php Docs: Correct the first parameter name for the `pre_site_option_{$option}` filter. 2024-09-04 21:10:14 +00:00
pluggable-deprecated.php
pluggable.php Docs: Various docblock improvements and corrections. 2024-09-11 12:08:19 +00:00
plugin.php
post-formats.php
post-template.php Docs: Correct documentation for `the_password_form` hook. 2024-08-03 18:32:14 +00:00
post-thumbnail-template.php
post.php Docs: Add missing @since and @param annotations for the `edit_post_{$field}` hook doc. 2024-09-18 06:04:10 +00:00
query.php
registration-functions.php
registration.php
rest-api.php REST API: Allow posts to be published with a publication date of midnight 1970-01-01. 2024-09-17 23:24:12 +00:00
revision.php Docs: Correct documentation for `_wp_preview_meta_filter()`. 2024-07-15 01:59:16 +00:00
rewrite.php Docs: The `$feedname` parameter in `add_feed()` should not start with an underscore. 2024-09-18 19:08:11 +00:00
robots-template.php
rss-functions.php
rss.php Code Modernization: Remove xml_set_object() in MagpieRSS::__construct(). 2024-09-18 21:40:12 +00:00
script-loader.php Editor: Restore the merging of TinyMCE settings in `wp_tinymce_inline_scripts()`. 2024-09-20 14:09:18 +00:00
script-modules.php Build: Prepare for more Script Modules 2024-09-24 07:35:17 +00:00
session.php
shortcodes.php
sitemaps.php
spl-autoload-compat.php
style-engine.php
taxonomy.php Docs: Further clarify return results for a non-existing ID in metadata functions. 2024-09-01 18:30:16 +00:00
template-canvas.php
template-loader.php
template.php
theme-i18n.json Themes: add "description" key to i18n schema 2024-07-02 23:25:18 +00:00
theme-previews.php
theme-templates.php
theme.json
theme.php Options, Meta APIs: Explicitly pass `$autoload` parameter to when potentially adding new options. 2024-09-03 18:19:14 +00:00
update.php Upgrade/Install: Indicate HEIC support when checking upgrades. 2024-09-13 05:23:22 +00:00
user.php Code Standards: Correct @since reference in `get_user()`. 2024-09-28 23:20:17 +00:00
vars.php
version.php Block Hooks: Respect `"multiple": false` in hooked blocks. 2024-09-30 12:23:17 +00:00
widgets.php
wp-db.php
wp-diff.php Code Modernization: Fix trigger_error() with E_USER_ERROR deprecation in Text_Diff::_check(). 2024-09-27 17:53:19 +00:00