home
/
aioutajg
/
unblockedgames247.com
/
wp-includes
/
Go to Home Directory
+
Upload
Create File
root@0UT1S:~$
Execute
By Order of Mr.0UT1S
[DIR] ..
N/A
[DIR] ID3
N/A
[DIR] IXR
N/A
[DIR] PHPMailer
N/A
[DIR] Requests
N/A
[DIR] SimplePie
N/A
[DIR] Text
N/A
[DIR] assets
N/A
[DIR] block-bindings
N/A
[DIR] block-patterns
N/A
[DIR] block-supports
N/A
[DIR] blocks
N/A
[DIR] certificates
N/A
[DIR] css
N/A
[DIR] customize
N/A
[DIR] fonts
N/A
[DIR] html-api
N/A
[DIR] images
N/A
[DIR] interactivity-api
N/A
[DIR] js
N/A
[DIR] l10n
N/A
[DIR] php-compat
N/A
[DIR] pomo
N/A
[DIR] rest-api
N/A
[DIR] sitemaps
N/A
[DIR] sodium_compat
N/A
[DIR] style-engine
N/A
[DIR] theme-compat
N/A
[DIR] widgets
N/A
admin-bar.php
36.09 KB
Rename
Delete
atomlib.php
11.79 KB
Rename
Delete
author-template.php
18.51 KB
Rename
Delete
block-bindings.php
5.46 KB
Rename
Delete
block-editor.php
28.12 KB
Rename
Delete
block-i18n.json
316 bytes
Rename
Delete
block-patterns.php
12.90 KB
Rename
Delete
block-template-utils.php
60.46 KB
Rename
Delete
block-template.php
15.00 KB
Rename
Delete
blocks.php
108.29 KB
Rename
Delete
bookmark-template.php
12.47 KB
Rename
Delete
bookmark.php
15.07 KB
Rename
Delete
cache-compat.php
5.83 KB
Rename
Delete
cache.php
13.16 KB
Rename
Delete
canonical.php
33.71 KB
Rename
Delete
capabilities.php
41.72 KB
Rename
Delete
category-template.php
55.67 KB
Rename
Delete
category.php
12.53 KB
Rename
Delete
class-IXR.php
2.55 KB
Rename
Delete
class-avif-info.php
28.92 KB
Rename
Delete
class-feed.php
539 bytes
Rename
Delete
class-http.php
367 bytes
Rename
Delete
class-json.php
42.66 KB
Rename
Delete
class-oembed.php
401 bytes
Rename
Delete
class-phpass.php
6.61 KB
Rename
Delete
class-phpmailer.php
664 bytes
Rename
Delete
class-pop3.php
20.63 KB
Rename
Delete
class-requests.php
2.18 KB
Rename
Delete
class-simplepie.php
453 bytes
Rename
Delete
class-smtp.php
457 bytes
Rename
Delete
class-snoopy.php
36.83 KB
Rename
Delete
class-walker-category-dropdown.php
2.41 KB
Rename
Delete
class-walker-category.php
8.28 KB
Rename
Delete
class-walker-comment.php
13.89 KB
Rename
Delete
class-walker-nav-menu.php
11.76 KB
Rename
Delete
class-walker-page-dropdown.php
2.65 KB
Rename
Delete
class-walker-page.php
7.43 KB
Rename
Delete
class-wp-admin-bar.php
17.46 KB
Rename
Delete
class-wp-ajax-response.php
5.14 KB
Rename
Delete
class-wp-application-passwords.php
16.70 KB
Rename
Delete
class-wp-block-bindings-registry.php
8.26 KB
Rename
Delete
class-wp-block-bindings-source.php
2.92 KB
Rename
Delete
class-wp-block-editor-context.php
1.32 KB
Rename
Delete
class-wp-block-list.php
4.65 KB
Rename
Delete
class-wp-block-metadata-registry.php
11.62 KB
Rename
Delete
class-wp-block-parser-block.php
2.50 KB
Rename
Delete
class-wp-block-parser-frame.php
1.97 KB
Rename
Delete
class-wp-block-parser.php
11.26 KB
Rename
Delete
class-wp-block-pattern-categories-registry.php
5.25 KB
Rename
Delete
class-wp-block-patterns-registry.php
10.53 KB
Rename
Delete
class-wp-block-styles-registry.php
6.25 KB
Rename
Delete
class-wp-block-supports.php
5.49 KB
Rename
Delete
class-wp-block-template.php
1.99 KB
Rename
Delete
class-wp-block-templates-registry.php
7.06 KB
Rename
Delete
class-wp-block-type-registry.php
4.90 KB
Rename
Delete
class-wp-block-type.php
16.86 KB
Rename
Delete
class-wp-block.php
22.50 KB
Rename
Delete
class-wp-classic-to-block-menu-converter.php
3.99 KB
Rename
Delete
class-wp-comment-query.php
47.26 KB
Rename
Delete
class-wp-comment.php
9.22 KB
Rename
Delete
class-wp-customize-control.php
25.25 KB
Rename
Delete
class-wp-customize-manager.php
197.84 KB
Rename
Delete
class-wp-customize-nav-menus.php
56.07 KB
Rename
Delete
class-wp-customize-panel.php
10.46 KB
Rename
Delete
class-wp-customize-section.php
10.95 KB
Rename
Delete
class-wp-customize-setting.php
29.26 KB
Rename
Delete
class-wp-customize-widgets.php
70.52 KB
Rename
Delete
class-wp-date-query.php
34.89 KB
Rename
Delete
class-wp-dependencies.php
14.78 KB
Rename
Delete
class-wp-dependency.php
2.57 KB
Rename
Delete
class-wp-duotone.php
39.83 KB
Rename
Delete
class-wp-editor.php
70.64 KB
Rename
Delete
class-wp-embed.php
15.56 KB
Rename
Delete
class-wp-error.php
7.33 KB
Rename
Delete
class-wp-exception.php
253 bytes
Rename
Delete
class-wp-fatal-error-handler.php
7.96 KB
Rename
Delete
class-wp-feed-cache-transient.php
3.10 KB
Rename
Delete
class-wp-feed-cache.php
969 bytes
Rename
Delete
class-wp-hook.php
15.63 KB
Rename
Delete
class-wp-http-cookie.php
7.22 KB
Rename
Delete
class-wp-http-curl.php
12.25 KB
Rename
Delete
class-wp-http-encoding.php
6.53 KB
Rename
Delete
class-wp-http-ixr-client.php
3.42 KB
Rename
Delete
class-wp-http-proxy.php
5.84 KB
Rename
Delete
class-wp-http-requests-hooks.php
1.97 KB
Rename
Delete
class-wp-http-requests-response.php
4.30 KB
Rename
Delete
class-wp-http-response.php
2.91 KB
Rename
Delete
class-wp-http-streams.php
16.46 KB
Rename
Delete
class-wp-http.php
40.60 KB
Rename
Delete
class-wp-image-editor-gd.php
19.69 KB
Rename
Delete
class-wp-image-editor-imagick.php
33.92 KB
Rename
Delete
class-wp-image-editor.php
17.12 KB
Rename
Delete
class-wp-list-util.php
7.27 KB
Rename
Delete
class-wp-locale-switcher.php
6.62 KB
Rename
Delete
class-wp-locale.php
16.49 KB
Rename
Delete
class-wp-matchesmapregex.php
1.79 KB
Rename
Delete
class-wp-meta-query.php
29.82 KB
Rename
Delete
class-wp-metadata-lazyloader.php
6.67 KB
Rename
Delete
class-wp-navigation-fallback.php
9.00 KB
Rename
Delete
class-wp-network-query.php
19.39 KB
Rename
Delete
class-wp-network.php
12.01 KB
Rename
Delete
class-wp-object-cache.php
17.11 KB
Rename
Delete
class-wp-oembed-controller.php
6.74 KB
Rename
Delete
class-wp-oembed.php
30.91 KB
Rename
Delete
class-wp-paused-extensions-storage.php
4.99 KB
Rename
Delete
class-wp-phpmailer.php
3.71 KB
Rename
Delete
class-wp-plugin-dependencies.php
24.72 KB
Rename
Delete
class-wp-post-type.php
29.96 KB
Rename
Delete
class-wp-post.php
6.34 KB
Rename
Delete
class-wp-query.php
154.32 KB
Rename
Delete
class-wp-recovery-mode-cookie-service.php
6.72 KB
Rename
Delete
class-wp-recovery-mode-email-service.php
10.92 KB
Rename
Delete
class-wp-recovery-mode-key-service.php
4.77 KB
Rename
Delete
class-wp-recovery-mode-link-service.php
3.38 KB
Rename
Delete
class-wp-recovery-mode.php
11.18 KB
Rename
Delete
class-wp-rewrite.php
62.20 KB
Rename
Delete
class-wp-role.php
2.46 KB
Rename
Delete
class-wp-roles.php
8.38 KB
Rename
Delete
class-wp-script-modules.php
19.01 KB
Rename
Delete
class-wp-scripts.php
27.68 KB
Rename
Delete
class-wp-session-tokens.php
7.15 KB
Rename
Delete
class-wp-simplepie-file.php
3.33 KB
Rename
Delete
class-wp-simplepie-sanitize-kses.php
1.87 KB
Rename
Delete
class-wp-site-query.php
30.88 KB
Rename
Delete
class-wp-site.php
7.28 KB
Rename
Delete
class-wp-speculation-rules.php
7.35 KB
Rename
Delete
class-wp-styles.php
10.75 KB
Rename
Delete
class-wp-tax-query.php
19.10 KB
Rename
Delete
class-wp-taxonomy.php
18.12 KB
Rename
Delete
class-wp-term-query.php
39.91 KB
Rename
Delete
class-wp-term.php
5.17 KB
Rename
Delete
class-wp-text-diff-renderer-inline.php
979 bytes
Rename
Delete
class-wp-text-diff-renderer-table.php
18.44 KB
Rename
Delete
class-wp-textdomain-registry.php
10.24 KB
Rename
Delete
class-wp-theme-json-data.php
1.77 KB
Rename
Delete
class-wp-theme-json-resolver.php
34.90 KB
Rename
Delete
class-wp-theme-json-schema.php
7.19 KB
Rename
Delete
class-wp-theme-json.php
159.71 KB
Rename
Delete
class-wp-theme.php
64.27 KB
Rename
Delete
class-wp-token-map.php
27.95 KB
Rename
Delete
class-wp-url-pattern-prefixer.php
4.69 KB
Rename
Delete
class-wp-user-meta-session-tokens.php
2.92 KB
Rename
Delete
class-wp-user-query.php
42.63 KB
Rename
Delete
class-wp-user-request.php
2.25 KB
Rename
Delete
class-wp-user.php
22.46 KB
Rename
Delete
class-wp-walker.php
13.01 KB
Rename
Delete
class-wp-widget-factory.php
3.27 KB
Rename
Delete
class-wp-widget.php
18.00 KB
Rename
Delete
class-wp-xmlrpc-server.php
210.39 KB
Rename
Delete
class-wp.php
25.70 KB
Rename
Delete
class-wpdb.php
115.51 KB
Rename
Delete
class.wp-dependencies.php
373 bytes
Rename
Delete
class.wp-scripts.php
343 bytes
Rename
Delete
class.wp-styles.php
338 bytes
Rename
Delete
comment-template.php
100.47 KB
Rename
Delete
comment.php
128.46 KB
Rename
Delete
compat.php
15.99 KB
Rename
Delete
cron.php
41.66 KB
Rename
Delete
date.php
400 bytes
Rename
Delete
default-constants.php
11.10 KB
Rename
Delete
default-filters.php
35.84 KB
Rename
Delete
default-widgets.php
2.24 KB
Rename
Delete
deprecated.php
187.07 KB
Rename
Delete
embed-template.php
338 bytes
Rename
Delete
embed.php
37.28 KB
Rename
Delete
error-protection.php
4.02 KB
Rename
Delete
feed-atom-comments.php
5.38 KB
Rename
Delete
feed-atom.php
3.05 KB
Rename
Delete
feed-rdf.php
2.61 KB
Rename
Delete
feed-rss.php
1.16 KB
Rename
Delete
feed-rss2-comments.php
4.04 KB
Rename
Delete
feed-rss2.php
3.71 KB
Rename
Delete
feed.php
22.86 KB
Rename
Delete
fonts.php
9.52 KB
Rename
Delete
formatting.php
334.24 KB
Rename
Delete
functions.php
280.81 KB
Rename
Delete
functions.wp-scripts.php
14.22 KB
Rename
Delete
functions.wp-styles.php
8.38 KB
Rename
Delete
general-template.php
168.46 KB
Rename
Delete
global-styles-and-settings.php
20.76 KB
Rename
Delete
http.php
24.72 KB
Rename
Delete
https-detection.php
5.72 KB
Rename
Delete
https-migration.php
4.63 KB
Rename
Delete
kses.php
72.73 KB
Rename
Delete
l10n.php
66.92 KB
Rename
Delete
link-template.php
154.10 KB
Rename
Delete
load.php
55.12 KB
Rename
Delete
locale.php
162 bytes
Rename
Delete
media-template.php
61.58 KB
Rename
Delete
media.php
215.12 KB
Rename
Delete
meta.php
63.71 KB
Rename
Delete
ms-blogs.php
25.24 KB
Rename
Delete
ms-default-constants.php
4.81 KB
Rename
Delete
ms-default-filters.php
6.48 KB
Rename
Delete
ms-deprecated.php
21.25 KB
Rename
Delete
ms-files.php
2.71 KB
Rename
Delete
ms-functions.php
89.44 KB
Rename
Delete
ms-load.php
19.42 KB
Rename
Delete
ms-network.php
3.69 KB
Rename
Delete
ms-settings.php
4.10 KB
Rename
Delete
ms-site.php
40.35 KB
Rename
Delete
nav-menu-template.php
25.38 KB
Rename
Delete
nav-menu.php
43.33 KB
Rename
Delete
option.php
100.65 KB
Rename
Delete
pluggable-deprecated.php
6.18 KB
Rename
Delete
pluggable.php
119.82 KB
Rename
Delete
plugin.php
34.63 KB
Rename
Delete
post-formats.php
6.94 KB
Rename
Delete
post-template.php
67.04 KB
Rename
Delete
post-thumbnail-template.php
10.62 KB
Rename
Delete
post.php
284.88 KB
Rename
Delete
query.php
36.17 KB
Rename
Delete
registration-functions.php
200 bytes
Rename
Delete
registration.php
200 bytes
Rename
Delete
rest-api.php
97.91 KB
Rename
Delete
revision.php
30.02 KB
Rename
Delete
rewrite.php
19.08 KB
Rename
Delete
robots-template.php
5.06 KB
Rename
Delete
rss-functions.php
255 bytes
Rename
Delete
rss.php
22.57 KB
Rename
Delete
script-loader.php
129.50 KB
Rename
Delete
script-modules.php
7.53 KB
Rename
Delete
session.php
258 bytes
Rename
Delete
shortcodes.php
23.49 KB
Rename
Delete
sitemaps.php
3.16 KB
Rename
Delete
speculative-loading.php
8.36 KB
Rename
Delete
spl-autoload-compat.php
441 bytes
Rename
Delete
style-engine.php
7.39 KB
Rename
Delete
taxonomy.php
172.10 KB
Rename
Delete
template-canvas.php
544 bytes
Rename
Delete
template-loader.php
2.94 KB
Rename
Delete
template.php
23.59 KB
Rename
Delete
theme-i18n.json
1.49 KB
Rename
Delete
theme-previews.php
2.77 KB
Rename
Delete
theme-templates.php
6.09 KB
Rename
Delete
theme.json
8.50 KB
Rename
Delete
theme.php
131.16 KB
Rename
Delete
update.php
36.62 KB
Rename
Delete
user.php
171.70 KB
Rename
Delete
vars.php
6.41 KB
Rename
Delete
version.php
1.06 KB
Rename
Delete
widgets.php
69.06 KB
Rename
Delete
wp-db.php
445 bytes
Rename
Delete
wp-diff.php
799 bytes
Rename
Delete
<?php /** * Register the block patterns and block patterns categories * * @package WordPress * @since 5.5.0 */ add_theme_support( 'core-block-patterns' ); /** * Registers the core block patterns and categories. * * @since 5.5.0 * @since 6.3.0 Added source to core block patterns. * @access private */ function _register_core_block_patterns_and_categories() { $should_register_core_patterns = get_theme_support( 'core-block-patterns' ); if ( $should_register_core_patterns ) { $core_block_patterns = array( 'query-standard-posts', 'query-medium-posts', 'query-small-posts', 'query-grid-posts', 'query-large-title-posts', 'query-offset-posts', ); foreach ( $core_block_patterns as $core_block_pattern ) { $pattern = require __DIR__ . '/block-patterns/' . $core_block_pattern . '.php'; $pattern['source'] = 'core'; register_block_pattern( 'core/' . $core_block_pattern, $pattern ); } } register_block_pattern_category( 'banner', array( 'label' => _x( 'Banners', 'Block pattern category' ), 'description' => __( 'Bold sections designed to showcase key content.' ), ) ); register_block_pattern_category( 'buttons', array( 'label' => _x( 'Buttons', 'Block pattern category' ), 'description' => __( 'Patterns that contain buttons and call to actions.' ), ) ); register_block_pattern_category( 'columns', array( 'label' => _x( 'Columns', 'Block pattern category' ), 'description' => __( 'Multi-column patterns with more complex layouts.' ), ) ); register_block_pattern_category( 'text', array( 'label' => _x( 'Text', 'Block pattern category' ), 'description' => __( 'Patterns containing mostly text.' ), ) ); register_block_pattern_category( 'query', array( 'label' => _x( 'Posts', 'Block pattern category' ), 'description' => __( 'Display your latest posts in lists, grids or other layouts.' ), ) ); register_block_pattern_category( 'featured', array( 'label' => _x( 'Featured', 'Block pattern category' ), 'description' => __( 'A set of high quality curated patterns.' ), ) ); register_block_pattern_category( 'call-to-action', array( 'label' => _x( 'Call to action', 'Block pattern category' ), 'description' => __( 'Sections whose purpose is to trigger a specific action.' ), ) ); register_block_pattern_category( 'team', array( 'label' => _x( 'Team', 'Block pattern category' ), 'description' => __( 'A variety of designs to display your team members.' ), ) ); register_block_pattern_category( 'testimonials', array( 'label' => _x( 'Testimonials', 'Block pattern category' ), 'description' => __( 'Share reviews and feedback about your brand/business.' ), ) ); register_block_pattern_category( 'services', array( 'label' => _x( 'Services', 'Block pattern category' ), 'description' => __( 'Briefly describe what your business does and how you can help.' ), ) ); register_block_pattern_category( 'contact', array( 'label' => _x( 'Contact', 'Block pattern category' ), 'description' => __( 'Display your contact information.' ), ) ); register_block_pattern_category( 'about', array( 'label' => _x( 'About', 'Block pattern category' ), 'description' => __( 'Introduce yourself.' ), ) ); register_block_pattern_category( 'portfolio', array( 'label' => _x( 'Portfolio', 'Block pattern category' ), 'description' => __( 'Showcase your latest work.' ), ) ); register_block_pattern_category( 'gallery', array( 'label' => _x( 'Gallery', 'Block pattern category' ), 'description' => __( 'Different layouts for displaying images.' ), ) ); register_block_pattern_category( 'media', array( 'label' => _x( 'Media', 'Block pattern category' ), 'description' => __( 'Different layouts containing video or audio.' ), ) ); register_block_pattern_category( 'videos', array( 'label' => _x( 'Videos', 'Block pattern category' ), 'description' => __( 'Different layouts containing videos.' ), ) ); register_block_pattern_category( 'audio', array( 'label' => _x( 'Audio', 'Block pattern category' ), 'description' => __( 'Different layouts containing audio.' ), ) ); register_block_pattern_category( 'posts', array( 'label' => _x( 'Posts', 'Block pattern category' ), 'description' => __( 'Display your latest posts in lists, grids or other layouts.' ), ) ); register_block_pattern_category( 'footer', array( 'label' => _x( 'Footers', 'Block pattern category' ), 'description' => __( 'A variety of footer designs displaying information and site navigation.' ), ) ); register_block_pattern_category( 'header', array( 'label' => _x( 'Headers', 'Block pattern category' ), 'description' => __( 'A variety of header designs displaying your site title and navigation.' ), ) ); } /** * Normalize the pattern properties to camelCase. * * The API's format is snake_case, `register_block_pattern()` expects camelCase. * * @since 6.2.0 * @access private * * @param array $pattern Pattern as returned from the Pattern Directory API. * @return array Normalized pattern. */ function wp_normalize_remote_block_pattern( $pattern ) { if ( isset( $pattern['block_types'] ) ) { $pattern['blockTypes'] = $pattern['block_types']; unset( $pattern['block_types'] ); } if ( isset( $pattern['viewport_width'] ) ) { $pattern['viewportWidth'] = $pattern['viewport_width']; unset( $pattern['viewport_width'] ); } return (array) $pattern; } /** * Register Core's official patterns from wordpress.org/patterns. * * @since 5.8.0 * @since 5.9.0 The $current_screen argument was removed. * @since 6.2.0 Normalize the pattern from the API (snake_case) to the * format expected by `register_block_pattern` (camelCase). * @since 6.3.0 Add 'pattern-directory/core' to the pattern's 'source'. * * @param WP_Screen $deprecated Unused. Formerly the screen that the current request was triggered from. */ function _load_remote_block_patterns( $deprecated = null ) { if ( ! empty( $deprecated ) ) { _deprecated_argument( __FUNCTION__, '5.9.0' ); $current_screen = $deprecated; if ( ! $current_screen->is_block_editor ) { return; } } $supports_core_patterns = get_theme_support( 'core-block-patterns' ); /** * Filter to disable remote block patterns. * * @since 5.8.0 * * @param bool $should_load_remote */ $should_load_remote = apply_filters( 'should_load_remote_block_patterns', true ); if ( $supports_core_patterns && $should_load_remote ) { $request = new WP_REST_Request( 'GET', '/wp/v2/pattern-directory/patterns' ); $core_keyword_id = 11; // 11 is the ID for "core". $request->set_param( 'keyword', $core_keyword_id ); $response = rest_do_request( $request ); if ( $response->is_error() ) { return; } $patterns = $response->get_data(); foreach ( $patterns as $pattern ) { $pattern['source'] = 'pattern-directory/core'; $normalized_pattern = wp_normalize_remote_block_pattern( $pattern ); $pattern_name = 'core/' . sanitize_title( $normalized_pattern['title'] ); register_block_pattern( $pattern_name, $normalized_pattern ); } } } /** * Register `Featured` (category) patterns from wordpress.org/patterns. * * @since 5.9.0 * @since 6.2.0 Normalized the pattern from the API (snake_case) to the * format expected by `register_block_pattern()` (camelCase). * @since 6.3.0 Add 'pattern-directory/featured' to the pattern's 'source'. */ function _load_remote_featured_patterns() { $supports_core_patterns = get_theme_support( 'core-block-patterns' ); /** This filter is documented in wp-includes/block-patterns.php */ $should_load_remote = apply_filters( 'should_load_remote_block_patterns', true ); if ( ! $should_load_remote || ! $supports_core_patterns ) { return; } $request = new WP_REST_Request( 'GET', '/wp/v2/pattern-directory/patterns' ); $featured_cat_id = 26; // This is the `Featured` category id from pattern directory. $request->set_param( 'category', $featured_cat_id ); $response = rest_do_request( $request ); if ( $response->is_error() ) { return; } $patterns = $response->get_data(); $registry = WP_Block_Patterns_Registry::get_instance(); foreach ( $patterns as $pattern ) { $pattern['source'] = 'pattern-directory/featured'; $normalized_pattern = wp_normalize_remote_block_pattern( $pattern ); $pattern_name = sanitize_title( $normalized_pattern['title'] ); // Some patterns might be already registered as core patterns with the `core` prefix. $is_registered = $registry->is_registered( $pattern_name ) || $registry->is_registered( "core/$pattern_name" ); if ( ! $is_registered ) { register_block_pattern( $pattern_name, $normalized_pattern ); } } } /** * Registers patterns from Pattern Directory provided by a theme's * `theme.json` file. * * @since 6.0.0 * @since 6.2.0 Normalized the pattern from the API (snake_case) to the * format expected by `register_block_pattern()` (camelCase). * @since 6.3.0 Add 'pattern-directory/theme' to the pattern's 'source'. * @access private */ function _register_remote_theme_patterns() { /** This filter is documented in wp-includes/block-patterns.php */ if ( ! apply_filters( 'should_load_remote_block_patterns', true ) ) { return; } if ( ! wp_theme_has_theme_json() ) { return; } $pattern_settings = wp_get_theme_directory_pattern_slugs(); if ( empty( $pattern_settings ) ) { return; } $request = new WP_REST_Request( 'GET', '/wp/v2/pattern-directory/patterns' ); $request['slug'] = $pattern_settings; $response = rest_do_request( $request ); if ( $response->is_error() ) { return; } $patterns = $response->get_data(); $patterns_registry = WP_Block_Patterns_Registry::get_instance(); foreach ( $patterns as $pattern ) { $pattern['source'] = 'pattern-directory/theme'; $normalized_pattern = wp_normalize_remote_block_pattern( $pattern ); $pattern_name = sanitize_title( $normalized_pattern['title'] ); // Some patterns might be already registered as core patterns with the `core` prefix. $is_registered = $patterns_registry->is_registered( $pattern_name ) || $patterns_registry->is_registered( "core/$pattern_name" ); if ( ! $is_registered ) { register_block_pattern( $pattern_name, $normalized_pattern ); } } } /** * Register any patterns that the active theme may provide under its * `./patterns/` directory. * * @since 6.0.0 * @since 6.1.0 The `postTypes` property was added. * @since 6.2.0 The `templateTypes` property was added. * @since 6.4.0 Uses the `WP_Theme::get_block_patterns` method. * @access private */ function _register_theme_block_patterns() { /* * During the bootstrap process, a check for active and valid themes is run. * If no themes are returned, the theme's functions.php file will not be loaded, * which can lead to errors if patterns expect some variables or constants to * already be set at this point, so bail early if that is the case. */ if ( empty( wp_get_active_and_valid_themes() ) ) { return; } /* * Register patterns for the active theme. If the theme is a child theme, * let it override any patterns from the parent theme that shares the same slug. */ $themes = array(); $theme = wp_get_theme(); $themes[] = $theme; if ( $theme->parent() ) { $themes[] = $theme->parent(); } $registry = WP_Block_Patterns_Registry::get_instance(); foreach ( $themes as $theme ) { $patterns = $theme->get_block_patterns(); $dirpath = $theme->get_stylesheet_directory() . '/patterns/'; $text_domain = $theme->get( 'TextDomain' ); foreach ( $patterns as $file => $pattern_data ) { if ( $registry->is_registered( $pattern_data['slug'] ) ) { continue; } $file_path = $dirpath . $file; if ( ! file_exists( $file_path ) ) { _doing_it_wrong( __FUNCTION__, sprintf( /* translators: %s: file name. */ __( 'Could not register file "%s" as a block pattern as the file does not exist.' ), $file ), '6.4.0' ); $theme->delete_pattern_cache(); continue; } $pattern_data['filePath'] = $file_path; // Translate the pattern metadata. // phpcs:ignore WordPress.WP.I18n.NonSingularStringLiteralText,WordPress.WP.I18n.NonSingularStringLiteralDomain,WordPress.WP.I18n.LowLevelTranslationFunction $pattern_data['title'] = translate_with_gettext_context( $pattern_data['title'], 'Pattern title', $text_domain ); if ( ! empty( $pattern_data['description'] ) ) { // phpcs:ignore WordPress.WP.I18n.NonSingularStringLiteralText,WordPress.WP.I18n.NonSingularStringLiteralDomain,WordPress.WP.I18n.LowLevelTranslationFunction $pattern_data['description'] = translate_with_gettext_context( $pattern_data['description'], 'Pattern description', $text_domain ); } register_block_pattern( $pattern_data['slug'], $pattern_data ); } } } add_action( 'init', '_register_theme_block_patterns' );
Save