WordPress/wp-admin
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
..
css Quick/Bulk Edit: Pre-fill category fields with their status. 2023-09-26 15:05:21 +00:00
images Help/About: Updates to About page. 2023-07-24 23:39:22 +00:00
includes Editor: Improve performance of _register_theme_block_patterns function. 2023-10-03 15:18:19 +00:00
js Quick/Bulk Edit: Pre-fill category fields with their status. 2023-09-26 15:05:21 +00:00
maint Code Modernization: Use dirname() with the $levels parameter. 2023-09-11 04:53:22 +00:00
network Administration: Use wp_admin_notice() in wp-admin/network/. 2023-09-17 19:12:21 +00:00
user
about.php Help/About: Add images to About page, match header style to images. 2023-08-01 15:04:22 +00:00
admin-ajax.php
admin-footer.php
admin-functions.php
admin-header.php Docs: Use third-person singular verbs in various function descriptions, as per docblocks standards. 2023-06-14 14:08:18 +00:00
admin-post.php
admin.php Docs: Use third-person singular verbs in various function descriptions, as per docblocks standards. 2023-06-14 14:08:18 +00:00
async-upload.php Administration: Use wp_admin_notice() more in wp-admin/. 2023-09-17 15:33:17 +00:00
authorize-application.php Administration: Use wp_admin_notice() in /wp-admin/. 2023-09-14 00:54:19 +00:00
comment.php Administration: Use wp_admin_notice() in /wp-admin/. 2023-09-14 00:54:19 +00:00
contribute.php Help/About: Escape "Contribute" links, for better consistency. 2023-08-01 12:58:22 +00:00
credits.php Help/About: Escape "Contribute" links, for better consistency. 2023-08-01 12:58:22 +00:00
custom-background.php
custom-header.php
customize.php Docs: Use third-person singular verbs in various function descriptions, as per docblocks standards. 2023-06-14 14:08:18 +00:00
edit-comments.php Administration: Use wp_admin_notice() more in wp-admin/. 2023-09-17 15:33:17 +00:00
edit-form-advanced.php Administration: Use wp_admin_notice() more in wp-admin/. 2023-09-17 15:33:17 +00:00
edit-form-blocks.php Editor: Add missing parameter to the block_editor_no_javascript_message filter after [56672]. 2023-09-25 10:02:22 +00:00
edit-form-comment.php I18N: Mark screen reader strings as such with translator comments. 2023-02-07 17:10:21 +00:00
edit-link-form.php Administration: Use wp_admin_notice() for .updated. 2023-09-14 02:15:17 +00:00
edit-tag-form.php Administration: Use wp_admin_notice() in /wp-admin/. 2023-09-14 00:54:19 +00:00
edit-tags.php Administration: Use wp_admin_notice() more in wp-admin/. 2023-09-17 15:33:17 +00:00
edit.php Posts: update admin notices to refer to patterns. 2023-09-18 07:04:19 +00:00
erase-personal-data.php Text Changes: Remove empty space in Erase Personal Data help tab. 2023-09-27 15:44:24 +00:00
export-personal-data.php Help/About: Use the new /documentation/ URLs for HelpHub links in WordPress Admin. 2023-02-23 10:38:21 +00:00
export.php Coding Standards: Escape the whole attribute in wp-admin/export.php. 2023-09-20 09:47:18 +00:00
freedoms.php Help/About: Updates to About page. 2023-07-24 23:39:22 +00:00
import.php Administration: Use wp_admin_notice() more in wp-admin/. 2023-09-17 15:33:17 +00:00
index.php Administration: Use wp_admin_notice() in /wp-admin/. 2023-09-14 00:54:19 +00:00
install-helper.php Docs: Fix typo and improve DocBlock formatting in wp-admin/install-helper.php. 2022-11-20 14:10:15 +00:00
install.php Upgrade/Install: Add aria-describedby for input descriptions. 2023-06-25 18:44:23 +00:00
link-add.php
link-manager.php Administration: Use wp_admin_notice() for .updated. 2023-09-14 02:15:17 +00:00
link-parse-opml.php Docs: Use third-person singular verbs in various function descriptions, as per docblocks standards. 2023-06-14 14:08:18 +00:00
link.php Coding Standards: Use pre-increment/decrement for stand-alone statements. 2023-09-09 09:28:26 +00:00
load-scripts.php
load-styles.php Database: Replace str_contains() and str_ends_with() usage in wpdb methods. 2023-06-23 12:17:24 +00:00
media-new.php Help/About: Use the new /documentation/ URLs for HelpHub links in WordPress Admin. 2023-02-23 10:38:21 +00:00
media-upload.php Coding Standards: Remove superfluous blank lines at the end of various files. 2023-09-07 14:59:21 +00:00
media.php Media: Redirect deprecated wp-admin/media.php file. 2023-06-19 23:20:21 +00:00
menu-header.php Docs: Replace multiple single line comments with multi-line comments. 2023-07-09 19:56:23 +00:00
menu.php Coding Standards: Fix a few newly introduced WPCS issues. 2023-09-17 02:10:17 +00:00
moderation.php
ms-admin.php
ms-delete-site.php Text Changes: Improve the wording of the email sent to confirm site deletion. 2022-11-14 21:57:10 +00:00
ms-edit.php
ms-options.php
ms-sites.php
ms-themes.php
ms-upgrade-network.php
ms-users.php
my-sites.php Administration: Add improved context for add new links. 2023-09-05 19:26:26 +00:00
nav-menus.php Administration: Use wp_admin_notice() more in wp-admin/. 2023-09-17 15:33:17 +00:00
network.php Help/About: Use the new /documentation/ URLs for HelpHub links in WordPress Admin. 2023-02-23 10:38:21 +00:00
options-discussion.php Help/About: Use the new /documentation/ URLs for HelpHub links in WordPress Admin. 2023-02-23 10:38:21 +00:00
options-general.php Coding Standards: Fix a few newly introduced WPCS issues. 2023-09-25 15:36:18 +00:00
options-head.php
options-media.php Help/About: Use the new /documentation/ URLs for HelpHub links in WordPress Admin. 2023-02-23 10:38:21 +00:00
options-permalink.php Code Modernization: Replace usage of strpos() with str_starts_with(). 2023-05-02 15:45:22 +00:00
options-privacy.php Administration: Use wp_admin_notice() in /wp-admin/. 2023-09-14 00:54:19 +00:00
options-reading.php Administration: Use wp_admin_notice() in /wp-admin/. 2023-09-14 00:54:19 +00:00
options-writing.php Administration: Hide password in options/writing. 2023-06-22 00:32:21 +00:00
options.php Administration: Use wp_admin_notice() in /wp-admin/. 2023-09-14 00:54:19 +00:00
plugin-editor.php Administration: Use wp_admin_notice() more in wp-admin/. 2023-09-17 15:33:17 +00:00
plugin-install.php Help/About: Use the new /documentation/ URLs for HelpHub links in WordPress Admin. 2023-02-23 10:38:21 +00:00
plugins.php Coding Standards: Upgrade WPCS to version 3.0.0. 2023-09-26 00:27:12 +00:00
post-new.php
post.php Code Modernization: Replace usage of strpos() with str_contains(). 2023-06-22 14:36:26 +00:00
press-this.php
privacy-policy-guide.php Administration: Use wp_admin_notice() in /wp-admin/. 2023-09-14 00:54:19 +00:00
privacy.php Help/About: Updates to About page. 2023-07-24 23:39:22 +00:00
profile.php
revision.php Revisions: Add missing escaping function for $post_edit_link in wp-admin/revision.php. 2023-08-24 09:32:21 +00:00
setup-config.php Upgrade/Install: Show/hide toggle on password fields. 2023-06-23 23:09:29 +00:00
site-editor.php Administration: Use wp_admin_notice() in /wp-admin/. 2023-09-14 00:54:19 +00:00
site-health-info.php Administration: Use wp_admin_notice() in /wp-admin/. 2023-09-14 00:54:19 +00:00
site-health.php Administration: Use wp_admin_notice() in /wp-admin/. 2023-09-14 00:54:19 +00:00
term.php General: Replace all esc_url_raw() calls in core with sanitize_url(). 2022-06-01 18:14:10 +00:00
theme-editor.php Administration: Use wp_admin_notice() more in wp-admin/. 2023-09-17 15:33:17 +00:00
theme-install.php Administration: Use wp_admin_notice() more in wp-admin/. 2023-09-17 15:33:17 +00:00
themes.php Administration: Improve control proximity in theme details modal. 2023-09-20 21:03:20 +00:00
tools.php Help/About: Use the new /documentation/ URLs for HelpHub links in WordPress Admin. 2023-02-23 10:38:21 +00:00
update-core.php Administration: Switch order of label/checkbox in WP_List_Table. 2023-09-22 19:58:16 +00:00
update.php Coding Standards: Replace include_once with require_once for required files. 2023-04-09 11:57:22 +00:00
upgrade-functions.php
upgrade.php Upgrade/Install: Add missing escaping function for get_option( 'home' ) in upgrade.php. 2023-08-25 05:44:16 +00:00
upload.php Administration: Remove duplicate wp_admin_notice() call. 2023-09-22 18:19:19 +00:00
user-edit.php Coding Standards: Fix a few newly introduced WPCS issues. 2023-09-25 15:36:18 +00:00
user-new.php Administration: Use wp_admin_notice() more in wp-admin/. 2023-09-17 15:33:17 +00:00
users.php Administration: Use wp_admin_notice() more in wp-admin/. 2023-09-17 15:33:17 +00:00
widgets-form-blocks.php Widgets: Add missing no JS notice in Widgets screen. 2023-09-25 00:00:17 +00:00
widgets-form.php Administration: Use wp_admin_notice() for .updated. 2023-09-14 02:15:17 +00:00
widgets.php