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 Code Modernization: Replace `dirname( __FILE__ )` calls with `__DIR__` magic constant. 2020-02-06 06:33:11 +00:00
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 Coding Standards: Remove extra space in `wp-admin/admin-ajax.php`. 2022-05-07 16:21:18 +00:00
admin-footer.php Coding Standards: Simplify a condition in `wp-admin/admin-footer.php`. 2021-06-01 11:30:57 +00:00
admin-functions.php Code Modernization: Replace `dirname( __FILE__ )` calls with `__DIR__` magic constant. 2020-02-06 06:33:11 +00:00
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 Administration: Require a valid action parameter to be set for `admin-ajax.php` requests. 2022-03-02 15:00:11 +00:00
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 Code Modernization: Replace `dirname( __FILE__ )` calls with `__DIR__` magic constant. 2020-02-06 06:33:11 +00:00
custom-header.php Code Modernization: Replace `dirname( __FILE__ )` calls with `__DIR__` magic constant. 2020-02-06 06:33:11 +00:00
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 Docs: Add a comment about the `$title` global usage in various admin files. 2021-07-22 13:53:00 +00:00
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 Docs: Update a comment in `wp-admin/load-styles.php` per the documentation standards. 2021-12-12 14:52:02 +00:00
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 Code Modernization: Replace `dirname( __FILE__ )` calls with `__DIR__` magic constant. 2020-02-06 06:33:11 +00:00
ms-admin.php Code Modernization: Replace `dirname( __FILE__ )` calls with `__DIR__` magic constant. 2020-02-06 06:33:11 +00:00
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 Code Modernization: Replace `dirname( __FILE__ )` calls with `__DIR__` magic constant. 2020-02-06 06:33:11 +00:00
ms-options.php Code Modernization: Replace `dirname( __FILE__ )` calls with `__DIR__` magic constant. 2020-02-06 06:33:11 +00:00
ms-sites.php Code Modernization: Replace `dirname( __FILE__ )` calls with `__DIR__` magic constant. 2020-02-06 06:33:11 +00:00
ms-themes.php Code Modernization: Replace `dirname( __FILE__ )` calls with `__DIR__` magic constant. 2020-02-06 06:33:11 +00:00
ms-upgrade-network.php Code Modernization: Replace `dirname( __FILE__ )` calls with `__DIR__` magic constant. 2020-02-06 06:33:11 +00:00
ms-users.php Code Modernization: Replace `dirname( __FILE__ )` calls with `__DIR__` magic constant. 2020-02-06 06:33:11 +00:00
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 Administration: Replace legacy `updated` message type in `add_settings_error()` calls with `success`. 2019-08-16 00:39:55 +00:00
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 Coding Standards: Use strict comparison where static strings are involved. 2020-05-16 18:42:12 +00:00
post.php Code Modernization: Replace usage of `strpos()` with `str_contains()`. 2023-06-22 14:36:26 +00:00
press-this.php Code Modernization: Replace `dirname( __FILE__ )` calls with `__DIR__` magic constant. 2020-02-06 06:33:11 +00:00
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 Code Modernization: Replace `dirname( __FILE__ )` calls with `__DIR__` magic constant. 2020-02-06 06:33:11 +00:00
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 Code Modernization: Replace `dirname( __FILE__ )` calls with `__DIR__` magic constant. 2020-02-06 06:33:11 +00:00
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 Administration: Replace contracted verb forms for better consistency. 2022-03-22 19:59:04 +00:00