WordPress/wp-admin/includes
spacedmonkey b0872b005d Editor: Improve performance of _register_theme_block_patterns function.
The `_register_theme_block_patterns` function imposed a significant resource overhead. This issue primarily stems from themes, such as TT4, that register a substantial number of block patterns. These patterns necessitate numerous file operations, including file lookups, file reading into memory, and related processes. To provide an overview, the _register_theme_block_patterns function performed the following file operations:

- is_dir
- is_readable
- file_exists
- glob
- file_get_contents (utilized via get_file_data)

To address these issues, caching using a transient has been added to a new function call `_wp_get_block_patterns`. If theme development mode is disabled and theme exists, the block patterns are saved in a transient cache. This cache is used all requests after that, saving file lookups and reading files into memory. Cache invalidation is done, when themes are switched, deleted or updated. Meaning that block patterns are not stored in the cache incorrectly. 

Props flixos90, joemcgill, peterwilsoncc, costdev, swissspidy, aristath, westonruter, spacedmonkey.
Fixes #59490
Built from https://develop.svn.wordpress.org/trunk@56765


git-svn-id: http://core.svn.wordpress.org/trunk@56277 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2023-10-03 15:18:19 +00:00
..
admin-filters.php Script Loader: Replace hardcoded output of style tags with calls to `wp_add_inline_style`. 2023-09-25 17:06:34 +00:00
admin.php General: add nonce for block theme preview activation. 2023-07-11 05:03:23 +00:00
ajax-actions.php Coding Standards: Use pre-increment/decrement for stand-alone statements. 2023-09-09 09:28:26 +00:00
bookmark.php Docs: Various improvements in Bookmark Administration API function descriptions, as per docblocks standards. 2023-05-03 10:03:21 +00:00
class-automatic-upgrader-skin.php Code Modernization: Replace usage of `strpos()` with `str_contains()`. 2023-06-22 14:36:26 +00:00
class-bulk-plugin-upgrader-skin.php Code Modernization: Explicitly declare all properties in `WP_Ajax_Upgrader_Skin`. 2022-08-29 12:46:10 +00:00
class-bulk-theme-upgrader-skin.php Code Modernization: Explicitly declare all properties in `WP_Ajax_Upgrader_Skin`. 2022-08-29 12:46:10 +00:00
class-bulk-upgrader-skin.php Administration: Use `wp_admin_notice()` more in `/wp-admin/includes/`. 2023-09-17 15:23:22 +00:00
class-core-upgrader.php Docs: Replace multiple single line comments with multi-line comments. 2023-07-09 19:52:24 +00:00
class-custom-background.php Administration: Use `wp_admin_notice()` more in `/wp-admin/includes/`. 2023-09-17 15:23:22 +00:00
class-custom-image-header.php Administration: Use `wp_admin_notice()` more in `/wp-admin/includes/`. 2023-09-17 15:23:22 +00:00
class-file-upload-upgrader.php Docs: Use third-person singular verbs in various function descriptions, as per docblocks standards. 2023-06-14 06:34:27 +00:00
class-ftp-pure.php Docs: Update URLs in some `@link` tags and switch them to HTTPS. 2019-11-01 14:57:02 +00:00
class-ftp-sockets.php Administration: Replace contracted verb forms for better consistency. 2022-03-22 16:25:03 +00:00
class-ftp.php Code Modernization: Replace usage of `strpos()` with `str_contains()`. 2023-06-22 14:36:26 +00:00
class-language-pack-upgrader-skin.php Code Modernization: Fix parameter name mismatches for parent/child classes in `WP_Upgrader_Skin::error()`. 2021-09-09 13:59:56 +00:00
class-language-pack-upgrader.php Coding Standards: Use pre-increment/decrement for stand-alone statements. 2023-09-09 09:28:26 +00:00
class-pclzip.php Docs: Fix a few more typos in DocBlocks and inline comments. 2023-05-19 13:27:20 +00:00
class-plugin-installer-skin.php Docs: Use third-person singular verbs in various function descriptions, as per docblocks standards. 2023-06-14 06:34:27 +00:00
class-plugin-upgrader-skin.php Docs: Use third-person singular verbs in various function descriptions, as per docblocks standards. 2023-06-14 06:34:27 +00:00
class-plugin-upgrader.php Coding Standards: Use pre-increment/decrement for stand-alone statements. 2023-09-09 09:28:26 +00:00
class-theme-installer-skin.php Docs: Use third-person singular verbs in various function descriptions, as per docblocks standards. 2023-06-14 06:34:27 +00:00
class-theme-upgrader-skin.php Docs: Use third-person singular verbs in various function descriptions, as per docblocks standards. 2023-06-14 06:34:27 +00:00
class-theme-upgrader.php Coding Standards: Use pre-increment/decrement for stand-alone statements. 2023-09-09 09:28:26 +00:00
class-walker-category-checklist.php Docs: Wrap inline `@see` tags in curly braces. 2023-08-24 09:01:16 +00:00
class-walker-nav-menu-checklist.php Coding Standards: Remove superfluous blank lines at the end of various classes. 2023-09-08 09:32:23 +00:00
class-walker-nav-menu-edit.php Coding Standards: Restore more descriptive variable names in a few class methods. 2023-09-14 12:46:20 +00:00
class-wp-ajax-upgrader-skin.php Code Modernization: Replace usage of `strpos()` with `str_contains()`. 2023-06-22 14:36:26 +00:00
class-wp-application-passwords-list-table.php Docs: A host of corrections and improvements to inline documentation. 2023-05-08 22:37:24 +00:00
class-wp-automatic-updater.php Coding Standards: Use pre-increment/decrement for stand-alone statements. 2023-09-09 09:28:26 +00:00
class-wp-comments-list-table.php Comments: Improve WP_Comment_Query count query performance by setting 'order by' to 'none'. 2023-09-29 17:13:24 +00:00
class-wp-community-events.php Coding Standards: Include one space after `function` keyword for closures. 2023-09-12 15:23:18 +00:00
class-wp-debug-data.php Site Health: Show correct debug value for file uploads. 2023-09-02 18:36:24 +00:00
class-wp-filesystem-base.php Coding Standards: Remove superfluous blank lines at the end of various functions. 2023-09-08 10:03:21 +00:00
class-wp-filesystem-direct.php Filesystem API: Correct and improve the return type documentation for the `dirlist()` method in `WP_Filesystem_Base` and its extending classes. 2023-05-03 21:30:19 +00:00
class-wp-filesystem-ftpext.php Filesystem API: Correct and improve the return type documentation for the `dirlist()` method in `WP_Filesystem_Base` and its extending classes. 2023-05-03 21:30:19 +00:00
class-wp-filesystem-ftpsockets.php Filesystem API: Correct and improve the return type documentation for the `dirlist()` method in `WP_Filesystem_Base` and its extending classes. 2023-05-03 21:30:19 +00:00
class-wp-filesystem-ssh2.php Filesystem API: Define password as `null` if not set when using SSH2 with public/private keys. 2023-06-29 17:05:30 +00:00
class-wp-importer.php Coding Standards: Use strict comparison in `wp-admin/includes/class-wp-importer.php`. 2023-08-14 09:59:20 +00:00
class-wp-internal-pointers.php Docs: Use third-person singular verbs in various function descriptions, as per docblocks standards. 2023-06-14 12:57:20 +00:00
class-wp-links-list-table.php Administration: Switch order of label/checkbox in `WP_List_Table`. 2023-09-22 19:58:16 +00:00
class-wp-list-table-compat.php Docs: Add missing descriptions for `_WP_List_Table_Compat` methods. 2020-11-14 16:54:08 +00:00
class-wp-list-table.php Administration: Switch order of label/checkbox in `WP_List_Table`. 2023-09-22 19:58:16 +00:00
class-wp-media-list-table.php Administration: Switch order of label/checkbox in `WP_List_Table`. 2023-09-22 19:58:16 +00:00
class-wp-ms-sites-list-table.php Administration: Switch order of label/checkbox in `WP_List_Table`. 2023-09-22 19:58:16 +00:00
class-wp-ms-themes-list-table.php Administration: Switch order of label/checkbox in `WP_List_Table`. 2023-09-22 19:58:16 +00:00
class-wp-ms-users-list-table.php Administration: Switch order of label/checkbox in `WP_List_Table`. 2023-09-22 19:58:16 +00:00
class-wp-plugin-install-list-table.php Administration: Use `wp_admin_notice()` more in `/wp-admin/includes/`. 2023-09-17 15:23:22 +00:00
class-wp-plugins-list-table.php Administration: Switch order of label/checkbox in `WP_List_Table`. 2023-09-22 19:58:16 +00:00
class-wp-post-comments-list-table.php Administration: Remove private delegation from list tables. 2022-10-04 03:47:15 +00:00
class-wp-posts-list-table.php Administration: Switch order of label/checkbox in `WP_List_Table`. 2023-09-22 19:58:16 +00:00
class-wp-privacy-data-export-requests-list-table.php Privacy: Fix "Retry" action after a personal data export failure. 2022-03-10 19:22:01 +00:00
class-wp-privacy-data-removal-requests-list-table.php Coding Standards: Remove superfluous blank lines at the end of various classes. 2023-09-08 09:32:23 +00:00
class-wp-privacy-policy-content.php Administration: Use `wp_admin_notice()` more in `/wp-admin/includes/`. 2023-09-17 15:23:22 +00:00
class-wp-privacy-requests-table.php Administration: Switch order of label/checkbox in `WP_List_Table`. 2023-09-22 19:58:16 +00:00
class-wp-screen.php Code Modernization: Replace usage of `substr()` with `str_starts_with()` and `str_ends_with()`. 2023-06-22 14:57:24 +00:00
class-wp-site-health-auto-updates.php Coding Standards: Upgrade WPCS to version 3.0.0. 2023-09-26 00:27:12 +00:00
class-wp-site-health.php Security: remove the cron event that checked for https support. 2023-09-22 19:08:19 +00:00
class-wp-site-icon.php Coding Standards: Use strict comparison in `wp-admin/includes/class-wp-site-icon.php`. 2023-04-23 04:02:18 +00:00
class-wp-terms-list-table.php Administration: Switch order of label/checkbox in `WP_List_Table`. 2023-09-22 19:58:16 +00:00
class-wp-theme-install-list-table.php Docs: Use third-person singular verbs in various function descriptions, as per docblocks standards. 2023-06-14 06:34:27 +00:00
class-wp-themes-list-table.php Docs: A host of corrections and improvements to inline documentation. 2023-05-08 22:37:24 +00:00
class-wp-upgrader-skin.php Code Modernization: Replace usage of `strpos()` with `str_contains()`. 2023-06-22 14:36:26 +00:00
class-wp-upgrader-skins.php Docs: Add missing `@deprecated` tags in the file docblock of some deprecated files. 2019-10-08 17:19:04 +00:00
class-wp-upgrader.php Upgrade/Install: Fix broken `sprintf()` call when deleting a backup. 2023-09-10 07:33:22 +00:00
class-wp-users-list-table.php Administration: Switch order of label/checkbox in `WP_List_Table`. 2023-09-22 19:58:16 +00:00
comment.php Docs: Use third-person singular verbs for function descriptions in `wp-admin/includes/comment.php`, as per docblocks standards. 2022-07-20 22:15:10 +00:00
continents-cities.php I18N: Update list of continents and cities for the timezone selection. 2022-09-19 23:24:11 +00:00
credits.php Code Modernization: Replace usage of `strpos()` with `str_contains()`. 2023-06-22 14:36:26 +00:00
dashboard.php Administration: Add event type to Events and News widget. 2023-09-26 03:54:20 +00:00
deprecated.php Properly deprecate both constructors in `WP_User_Search`. 2023-08-25 03:37:12 +00:00
edit-tag-messages.php Docs: Various inline documentation corrections and improvements. 2021-12-07 12:20:02 +00:00
export.php General: Replace some instances of "blog" with "site" in documentation, translator comments, and user-facing text strings. 2023-06-19 18:27:27 +00:00
file.php Coding Standards: Remove redundant ignore annotations, take 4. 2023-10-01 00:22:27 +00:00
image-edit.php Coding Standards: Remove unused variable `el` in monitorPopup. 2023-09-21 18:04:16 +00:00
image.php Coding Standards: Remove redundant ignore annotations, take 2. 2023-09-29 12:21:24 +00:00
import.php Docs: Various docblock improvements in Importer Administration API, as per docs standards. 2022-07-29 09:22:10 +00:00
list-table.php Administration: Remove private delegation from list tables. 2022-10-04 03:47:15 +00:00
media.php Coding Standards: Use pre-increment/decrement for stand-alone statements. 2023-09-09 09:28:26 +00:00
menu.php Coding Standards: Use pre-increment/decrement for stand-alone statements. 2023-09-09 09:28:26 +00:00
meta-boxes.php Comments: Improve WP_Comment_Query count query performance by setting 'order by' to 'none'. 2023-09-29 17:13:24 +00:00
misc.php Login and Registration: Improve HTML for errors and notices. 2023-09-21 18:24:15 +00:00
ms-admin-filters.php Networks and Sites: Officially remove global terms. 2022-09-20 02:51:09 +00:00
ms-deprecated.php Networks and Sites: Officially remove global terms. 2022-09-20 02:51:09 +00:00
ms.php Administration: Use `wp_admin_notice()` more in `/wp-admin/includes/`. 2023-09-17 15:23:22 +00:00
nav-menu.php Administration: Use `wp_admin_notice()` more in `/wp-admin/includes/`. 2023-09-17 15:23:22 +00:00
network.php Administration: Use `wp_admin_notice()` more in `/wp-admin/includes/`. 2023-09-17 15:23:22 +00:00
noop.php Themes: Fix fatal error in `load-styles.php`. 2023-09-21 01:27:26 +00:00
options.php Docs: Replace multiple single line comments with multi-line comments. 2023-07-09 20:07:22 +00:00
plugin-install.php Administration: Use `wp_admin_notice()` in `/wp-admin/includes`. 2023-09-14 01:13:20 +00:00
plugin.php Administration: Use `wp_admin_notice()` in `/wp-admin/includes`. 2023-09-14 01:13:20 +00:00
post.php Coding Standards: Remove redundant ignore annotations, take 4. 2023-10-01 00:22:27 +00:00
privacy-tools.php Code Modernization: Replace usage of `strpos()` with `str_contains()`. 2023-06-22 14:36:26 +00:00
revision.php Coding Standards: Remove superfluous blank lines at the end of various functions. 2023-09-08 10:03:21 +00:00
schema.php Media: Disable attachment pages for new installations. 2023-09-22 00:04:41 +00:00
screen.php Coding Standards: Use strict comparison in `wp-admin/includes/screen.php`. 2021-05-09 20:27:02 +00:00
taxonomy.php Coding Standards: Use strict comparison in `wp-admin/includes/taxonomy.php`. 2023-03-10 07:04:20 +00:00
template.php Administration: Use `wp_admin_notice()` more in `/wp-admin/includes/`. 2023-09-17 15:23:22 +00:00
theme-install.php Coding Standards: Remove superfluous blank lines at the end of various functions. 2023-09-08 10:03:21 +00:00
theme.php Editor: Improve performance of _register_theme_block_patterns function. 2023-10-03 15:18:19 +00:00
translation-install.php Coding Standards: Always use parentheses when instantiating an object. 2022-11-29 15:51:14 +00:00
update-core.php Bundled Themes: Twenty Twenty-Four is now the default theme. 2023-09-26 17:33:20 +00:00
update.php Administration: Use `wp_admin_notice()` more in `/wp-admin/includes/`. 2023-09-17 15:23:22 +00:00
upgrade.php Security: remove the cron event that checked for https support. 2023-09-22 19:08:19 +00:00
user.php Administration: Use `wp_admin_notice()` more in `/wp-admin/includes/`. 2023-09-17 15:23:22 +00:00
widgets.php Coding Standards: Use pre-increment/decrement for stand-alone statements. 2023-09-09 09:28:26 +00:00