/home/techb158/public_html/wp-includes
NameSizeModeActions
abilities-api/-0755rm
ai-client/-0755rm
assets/-0777rm
block-bindings/-0755rm
block-patterns/-0777rm
block-supports/-0777rm
blocks/-0777rm
build/-0755rm
certificates/-0777rm
css/-0777rm
customize/-0777rm
fonts/-0777rm
html-api/-0755rm
ID3/-0777rm
images/-0777rm
interactivity-api/-0755rm
IXR/-0777rm
js/-0777rm
l10n/-0755rm
php-ai-client/-0755rm
php-compat/-0777rm
PHPMailer/-0777rm
pomo/-0777rm
Requests/-0777rm
rest-api/-0777rm
SimplePie/-0777rm
sitemaps/-0777rm
sodium_compat/-0777rm
style-engine/-0777rm
Text/-0777rm
theme-compat/-0777rm
widgets/-0777rm
.htaccess1780644editdlrm
abilities-api.php328000666editdlrm
abilities.php117970666editdlrm
admin-bar.php400670666editdlrm
ai-client.php25490666editdlrm
atomlib.php121810666editdlrm
author-template.php198440666editdlrm
block-bindings.php76320666editdlrm
block-editor.php287240666editdlrm
block-i18n.json3160666editdlrm
block-patterns.php156060666editdlrm
block-template-utils.php631680666editdlrm
block-template.php182570666editdlrm
blocks.php1242050666editdlrm
bookmark-template.php127680666editdlrm
bookmark.php154270666editdlrm
cache-compat.php110210666editdlrm
cache.php134860666editdlrm
canonical.php347860666editdlrm
capabilities.php435840666editdlrm
category-template.php569900666editdlrm
category.php128340666editdlrm
class-avif-info.php300080666editdlrm
class-feed.php5390666editdlrm
class-http.php3670666editdlrm
class-IXR.php26090666editdlrm
class-json.php436760666editdlrm
class-oembed.php4010666editdlrm
class-phpass.php67710666editdlrm
class-phpmailer.php6640666editdlrm
class-pop3.php211000666editdlrm
class-requests.php22370666editdlrm
class-simplepie.php4530666editdlrm
class-smtp.php4570666editdlrm
class-snoopy.php377150666editdlrm
class-walker-category-dropdown.php24690666editdlrm
class-walker-category.php84770666editdlrm
class-walker-comment.php142210666editdlrm
class-walker-nav-menu.php120440666editdlrm
class-walker-page-dropdown.php27100666editdlrm
class-walker-page.php76120666editdlrm
class-wp-admin-bar.php180020666editdlrm
class-wp-ajax-response.php52880666editdlrm
class-wp-application-passwords.php170990666editdlrm
class-wp-block-bindings-registry.php82630666editdlrm
class-wp-block-bindings-source.php29920666editdlrm
class-wp-block-editor-context.php13500666editdlrm
class-wp-block-list.php47130666editdlrm
class-wp-block-metadata-registry.php118460666editdlrm
class-wp-block-parser-block.php25550666editdlrm
class-wp-block-parser-frame.php19940666editdlrm
class-wp-block-parser.php115250666editdlrm
class-wp-block-pattern-categories-registry.php43830666editdlrm
class-wp-block-patterns-registry.php102650666editdlrm
class-wp-block-processor.php699140666editdlrm
class-wp-block-styles-registry.php64190666editdlrm
class-wp-block-supports.php75780666editdlrm
class-wp-block-template.php21110666editdlrm
class-wp-block-templates-registry.php70800666editdlrm
class-wp-block-type-registry.php53050666editdlrm
class-wp-block-type.php172220666editdlrm
class-wp-block.php282360666editdlrm
class-wp-classic-to-block-menu-converter.php40260666editdlrm
class-wp-comment-query.php490400666editdlrm
class-wp-comment.php172490666editdlrm
class-wp-connector-registry.php151810666editdlrm
class-wp-customize-control.php261120666editdlrm
class-wp-customize-manager.php2029080666editdlrm
class-wp-customize-nav-menus.php580340666editdlrm
class-wp-customize-panel.php107030666editdlrm
class-wp-customize-section.php112090666editdlrm
class-wp-customize-setting.php299560666editdlrm
class-wp-customize-widgets.php725960666editdlrm
class-wp-date-query.php359700666editdlrm
class-wp-dependencies.php170890666editdlrm
class-wp-dependency.php26530666editdlrm
class-wp-duotone.php408360666editdlrm
class-wp-editor.php722280666editdlrm
class-wp-embed.php159080666editdlrm
class-wp-error.php75140666editdlrm
class-wp-exception.php2530666editdlrm
class-wp-fatal-error-handler.php81500666editdlrm
class-wp-feed-cache-transient.php33040666editdlrm
class-wp-feed-cache.php9690666editdlrm
class-wp-filter-sentinel.php7600666editdlrm
class-wp-hook.php174720666editdlrm
class-wp-http-cookie.php72690666editdlrm
class-wp-http-curl.php132610666editdlrm
class-wp-http-encoding.php66890666editdlrm
class-wp-http-ixr-client.php35160666editdlrm
class-wp-http-proxy.php59800666editdlrm
class-wp-http-requests-hooks.php20220666editdlrm
class-wp-http-requests-response.php42430666editdlrm
class-wp-http-response.php29770666editdlrm
class-wp-http-streams.php167640666editdlrm
class-wp-http.php416410666editdlrm
class-wp-icon-collections-registry.php58050666editdlrm
class-wp-icons-registry.php99030666editdlrm
class-wp-image-editor-gd.php207410666editdlrm
class-wp-image-editor-imagick.php434540666editdlrm
class-wp-image-editor.php174560666editdlrm
class-wp-list-util.php74430666editdlrm
class-wp-locale-switcher.php67760666editdlrm
class-wp-locale.php168480666editdlrm
class-wp-matchesmapregex.php18280666editdlrm
class-wp-meta-query.php305070666editdlrm
class-wp-metadata-lazyloader.php68330666editdlrm
class-wp-navigation-fallback.php91930666editdlrm
class-wp-network-query.php199890666editdlrm
class-wp-network.php124110666editdlrm
class-wp-object-cache.php175240666editdlrm
class-wp-oembed-controller.php69050666editdlrm
class-wp-oembed.php343720666editdlrm
class-wp-paused-extensions-storage.php50670666editdlrm
class-wp-phpmailer.php43480666editdlrm
class-wp-plugin-dependencies.php252090666editdlrm
class-wp-post-type.php306720666editdlrm
class-wp-post.php88060666editdlrm
class-wp-query.php1641480666editdlrm
class-wp-recovery-mode-cookie-service.php68770666editdlrm
class-wp-recovery-mode-email-service.php111620666editdlrm
class-wp-recovery-mode-key-service.php49140666editdlrm
class-wp-recovery-mode-link-service.php35230666editdlrm
class-wp-recovery-mode.php114600666editdlrm
class-wp-rewrite.php636930666editdlrm
class-wp-role.php25230666editdlrm
class-wp-roles.php93260666editdlrm
class-wp-script-modules.php407430666editdlrm
class-wp-scripts.php367540666editdlrm
class-wp-session-tokens.php73190666editdlrm
class-wp-simplepie-file.php35520666editdlrm
class-wp-simplepie-sanitize-kses.php19030666editdlrm
class-wp-site-query.php314820666editdlrm
class-wp-site.php78360666editdlrm
class-wp-speculation-rules.php78840666editdlrm
class-wp-styles.php133160666editdlrm
class-wp-tax-query.php195770666editdlrm
class-wp-taxonomy.php185590666editdlrm
class-wp-term-query.php407510666editdlrm
class-wp-term.php52630666editdlrm
class-wp-text-diff-renderer-inline.php9790666editdlrm
class-wp-text-diff-renderer-table.php189250666editdlrm
class-wp-textdomain-registry.php104810666editdlrm
class-wp-theme-json-data.php18050666editdlrm
class-wp-theme-json-resolver.php356920666editdlrm
class-wp-theme-json-schema.php73670666editdlrm
class-wp-theme-json.php2215060666editdlrm
class-wp-theme.php658110666editdlrm
class-wp-token-map.php290320666editdlrm
class-wp-url-pattern-prefixer.php48020666editdlrm
class-wp-user-meta-session-tokens.php29540666editdlrm
class-wp-user-query.php441020666editdlrm
class-wp-user-request.php23420666editdlrm
class-wp-user.php231890666editdlrm
class-wp-view-config-data.php294270666editdlrm
class-wp-walker.php132920666editdlrm
class-wp-widget-factory.php33430666editdlrm
class-wp-widget.php191290644editdlrm
class-wp-xmlrpc-server.php2162720666editdlrm
class-wp.php263710666editdlrm
class-wpdb.php1214370666editdlrm
class.wp-dependencies.php3730666editdlrm
class.wp-scripts.php3430666editdlrm
class.wp-styles.php3380666editdlrm
comment-template.php1032110666editdlrm
comment.php1506300666editdlrm
compat-utf8.php193860666editdlrm
compat.php231050644editdlrm
connectors.php329220666editdlrm
cron.php462660666editdlrm
date.php4000666editdlrm
default-constants.php113650666editdlrm
default-filters.php395000666editdlrm
default-widgets.php22880666editdlrm
deprecated.php1939770666editdlrm
embed-template.php3380666editdlrm
embed.php392150666editdlrm
error-protection.php40920666editdlrm
feed-atom-comments.php55040666editdlrm
feed-atom.php31140666editdlrm
feed-rdf.php26680666editdlrm
feed-rss.php11890666editdlrm
feed-rss2-comments.php41360666editdlrm
feed-rss2.php37990666editdlrm
feed.php251890666editdlrm
fonts.php97890666editdlrm
formatting.php3576520666editdlrm
functions.php2954810666editdlrm
functions.wp-scripts.php204920666editdlrm
functions.wp-styles.php86540666editdlrm
general-template.php1834720666editdlrm
global-styles-and-settings.php207800666editdlrm
http.php289610666editdlrm
https-detection.php58570666editdlrm
https-migration.php47410666editdlrm
icons.php63340666editdlrm
index.php10880444editdlrm
json-schema.php78020666editdlrm
kses.php884970666editdlrm
kwa.txt10644editdlrm
l10n.php714150666editdlrm
link-template.php1601430666editdlrm
load.php571480644editdlrm
locale.php1620666editdlrm
media-template.php657590666editdlrm
media.php2368040666editdlrm
meta.php667390666editdlrm
ms-blogs.php263240666editdlrm
ms-default-constants.php49210666editdlrm
ms-default-filters.php66360666editdlrm
ms-deprecated.php217870666editdlrm
ms-files.php28570666editdlrm
ms-functions.php932580644editdlrm
ms-load.php200550666editdlrm
ms-network.php37820666editdlrm
ms-settings.php41970666editdlrm
ms-site.php417290666editdlrm
nav-menu-template.php259830666editdlrm
nav-menu.php442690666editdlrm
option.php1052460666editdlrm
pluggable-deprecated.php63240666editdlrm
pluggable.php1279190666editdlrm
plugin.php391100644editdlrm
post-formats.php70700666editdlrm
post-template.php691290666editdlrm
post-thumbnail-template.php108790666editdlrm
post.php3052150666editdlrm
query.php375540666editdlrm
registration-functions.php2000666editdlrm
registration.php2000666editdlrm
rest-api.php1029510666editdlrm
revision.php312410666editdlrm
rewrite.php195670666editdlrm
robots-template.php51850666editdlrm
rss-functions.php2770666editdlrm
rss.php232030666editdlrm
script-loader.php1635500666editdlrm
script-modules.php123110666editdlrm
session.php2580666editdlrm
shortcodes.php240340666editdlrm
sitemaps.php32380666editdlrm
speculative-loading.php118800666editdlrm
spl-autoload-compat.php4410666editdlrm
style-engine.php80450666editdlrm
taxonomy.php1783070666editdlrm
template-canvas.php5440666editdlrm
template-loader.php42670666editdlrm
template.php368240666editdlrm
theme-i18n.json18920666editdlrm
theme-previews.php28870666editdlrm
theme-templates.php40600666editdlrm
theme.json94800666editdlrm
theme.php1346410666editdlrm
update.php382690666editdlrm
user.php1803010666editdlrm
utf8.php69770666editdlrm
vars.php66000666editdlrm
version.php18090644editdlrm
view-config.php190870666editdlrm
view-transitions.php6020666editdlrm
widgets.php708660666editdlrm
wp-db.php4450666editdlrm
wp-diff.php7920666editdlrm
Edit: /home/techb158/public_html/wp-includes/class-wp-embed.php (15908B)
handlers[ $priority ][ $id ] = array( 'regex' => $regex, 'callback' => $callback, ); } /** * Unregisters a previously-registered embed handler. * * Do not use this function directly, use wp_embed_unregister_handler() instead. * * @param string $id The handler ID that should be removed. * @param int $priority Optional. The priority of the handler to be removed (default: 10). */ public function unregister_handler( $id, $priority = 10 ) { unset( $this->handlers[ $priority ][ $id ] ); } /** * Returns embed HTML for a given URL from embed handlers. * * Attempts to convert a URL into embed HTML by checking the URL * against the regex of the registered embed handlers. * * @since 5.5.0 * * @param array $attr { * Shortcode attributes. Optional. * * @type int $width Width of the embed in pixels. * @type int $height Height of the embed in pixels. * } * @param string $url The URL attempting to be embedded. * @return string|false The embed HTML on success, false otherwise. */ public function get_embed_handler_html( $attr, $url ) { $rawattr = $attr; $attr = wp_parse_args( $attr, wp_embed_defaults( $url ) ); ksort( $this->handlers ); foreach ( $this->handlers as $priority => $handlers ) { foreach ( $handlers as $id => $handler ) { if ( preg_match( $handler['regex'], $url, $matches ) && is_callable( $handler['callback'] ) ) { $return = call_user_func( $handler['callback'], $matches, $attr, $url, $rawattr ); if ( false !== $return ) { /** * Filters the returned embed HTML. * * @since 2.9.0 * * @see WP_Embed::shortcode() * * @param string $return The HTML result of the shortcode. * @param string $url The embed URL. * @param array $attr An array of shortcode attributes. */ return apply_filters( 'embed_handler_html', $return, $url, $attr ); } } } } return false; } /** * The do_shortcode() callback function. * * Attempts to convert a URL into embed HTML. Starts by checking the URL against the regex of * the registered embed handlers. If none of the regex matches and it's enabled, then the URL * will be given to the WP_oEmbed class. * * @param array $attr { * Shortcode attributes. Optional. * * @type int $width Width of the embed in pixels. * @type int $height Height of the embed in pixels. * } * @param string $url The URL attempting to be embedded. * @return string|false The embed HTML on success, otherwise the original URL. * `->maybe_make_link()` can return false on failure. */ public function shortcode( $attr, $url = '' ) { $post = get_post(); if ( empty( $url ) && ! empty( $attr['src'] ) ) { $url = $attr['src']; } $this->last_url = $url; if ( empty( $url ) ) { $this->last_attr = $attr; return ''; } $rawattr = $attr; $attr = wp_parse_args( $attr, wp_embed_defaults( $url ) ); $this->last_attr = $attr; /* * KSES converts & into & and we need to undo this. * See https://core.trac.wordpress.org/ticket/11311 */ $url = str_replace( '&', '&', $url ); // Look for known internal handlers. $embed_handler_html = $this->get_embed_handler_html( $rawattr, $url ); if ( false !== $embed_handler_html ) { return $embed_handler_html; } $post_id = ( ! empty( $post->ID ) ) ? $post->ID : null; // Potentially set by WP_Embed::cache_oembed(). if ( ! empty( $this->post_ID ) ) { $post_id = $this->post_ID; } // Check for a cached result (stored as custom post or in the post meta). $key_suffix = md5( $url . serialize( $attr ) ); $cachekey = '_oembed_' . $key_suffix; $cachekey_time = '_oembed_time_' . $key_suffix; /** * Filters the oEmbed TTL value (time to live). * * @since 4.0.0 * * @param int $time Time to live (in seconds). * @param string $url The attempted embed URL. * @param array $attr An array of shortcode attributes. * @param int $post_id Post ID. */ $ttl = apply_filters( 'oembed_ttl', DAY_IN_SECONDS, $url, $attr, $post_id ); $cache = ''; $cache_time = 0; $cached_post_id = $this->find_oembed_post_id( $key_suffix ); if ( $post_id ) { $cache = get_post_meta( $post_id, $cachekey, true ); $cache_time = get_post_meta( $post_id, $cachekey_time, true ); if ( ! $cache_time ) { $cache_time = 0; } } elseif ( $cached_post_id ) { $cached_post = get_post( $cached_post_id ); $cache = $cached_post->post_content; $cache_time = strtotime( $cached_post->post_modified_gmt ); } $cached_recently = ( time() - $cache_time ) < $ttl; if ( $this->usecache || $cached_recently ) { // Failures are cached. Serve one if we're using the cache. if ( '{{unknown}}' === $cache ) { return $this->maybe_make_link( $url ); } if ( ! empty( $cache ) ) { /** * Filters the cached oEmbed HTML. * * @since 2.9.0 * * @see WP_Embed::shortcode() * * @param string $cache The cached HTML result, stored in post meta. * @param string $url The attempted embed URL. * @param array $attr An array of shortcode attributes. * @param int $post_id Post ID. */ return apply_filters( 'embed_oembed_html', $cache, $url, $attr, $post_id ); } } /** * Filters whether to inspect the given URL for discoverable link tags. * * @since 2.9.0 * @since 4.4.0 The default value changed to true. * * @see WP_oEmbed::discover() * * @param bool $enable Whether to enable `` tag discovery. Default true. */ $attr['discover'] = apply_filters( 'embed_oembed_discover', true ); // Use oEmbed to get the HTML. $html = wp_oembed_get( $url, $attr ); if ( $post_id ) { if ( $html ) { update_post_meta( $post_id, $cachekey, $html ); update_post_meta( $post_id, $cachekey_time, time() ); } elseif ( ! $cache ) { update_post_meta( $post_id, $cachekey, '{{unknown}}' ); } } else { $has_kses = false !== has_filter( 'content_save_pre', 'wp_filter_post_kses' ); if ( $has_kses ) { // Prevent KSES from corrupting JSON in post_content. kses_remove_filters(); } $insert_post_args = array( 'post_name' => $key_suffix, 'post_status' => 'publish', 'post_type' => 'oembed_cache', ); if ( $html ) { if ( $cached_post_id ) { wp_update_post( wp_slash( array( 'ID' => $cached_post_id, 'post_content' => $html, ) ) ); } else { wp_insert_post( wp_slash( array_merge( $insert_post_args, array( 'post_content' => $html, ) ) ) ); } } elseif ( ! $cache ) { wp_insert_post( wp_slash( array_merge( $insert_post_args, array( 'post_content' => '{{unknown}}', ) ) ) ); } if ( $has_kses ) { kses_init_filters(); } } // If there was a result, return it. if ( $html ) { /** This filter is documented in wp-includes/class-wp-embed.php */ return apply_filters( 'embed_oembed_html', $html, $url, $attr, $post_id ); } // Still unknown. return $this->maybe_make_link( $url ); } /** * Deletes all oEmbed caches. Unused by core as of 4.0.0. * * @param int $post_id Post ID to delete the caches for. */ public function delete_oembed_caches( $post_id ) { $post_metas = get_post_custom_keys( $post_id ); if ( empty( $post_metas ) ) { return; } foreach ( $post_metas as $post_meta_key ) { if ( str_starts_with( $post_meta_key, '_oembed_' ) ) { delete_post_meta( $post_id, $post_meta_key ); } } } /** * Triggers a caching of all oEmbed results. * * @param int $post_id Post ID to do the caching for. */ public function cache_oembed( $post_id ) { $post = get_post( $post_id ); $post_types = get_post_types( array( 'show_ui' => true ) ); /** * Filters the array of post types to cache oEmbed results for. * * @since 2.9.0 * * @param string[] $post_types Array of post type names to cache oEmbed results for. Defaults to post types with `show_ui` set to true. */ $cache_oembed_types = apply_filters( 'embed_cache_oembed_types', $post_types ); if ( empty( $post->ID ) || ! in_array( $post->post_type, $cache_oembed_types, true ) ) { return; } // Trigger a caching. if ( ! empty( $post->post_content ) ) { $this->post_ID = $post->ID; $this->usecache = false; $content = $this->run_shortcode( $post->post_content ); $this->autoembed( $content ); $this->usecache = true; } } /** * Passes any unlinked URLs that are on their own line to WP_Embed::shortcode() for potential embedding. * * @see WP_Embed::autoembed_callback() * * @param string $content The content to be searched. * @return string Potentially modified $content. */ public function autoembed( $content ) { // Replace line breaks from all HTML elements with placeholders. $content = wp_replace_in_html_tags( $content, array( "\n" => '' ) ); if ( preg_match( '#(^|\s|>)https?://#i', $content ) ) { // Find URLs on their own line. $content = preg_replace_callback( '|^(\s*)(https?://[^\s<>"]+)(\s*)$|im', array( $this, 'autoembed_callback' ), $content ); // Find URLs in their own paragraph. $content = preg_replace_callback( '|(]*)?>\s*)(https?://[^\s<>"]+)(\s*<\/p>)|i', array( $this, 'autoembed_callback' ), $content ); } // Put the line breaks back. return str_replace( '', "\n", $content ); } /** * Callback function for WP_Embed::autoembed(). * * @param array $matches A regex match array. * @return string The embed HTML on success, otherwise the original URL. */ public function autoembed_callback( $matches ) { $oldval = $this->linkifunknown; $this->linkifunknown = false; $return = $this->shortcode( array(), $matches[2] ); $this->linkifunknown = $oldval; return $matches[1] . $return . $matches[3]; } /** * Conditionally makes a hyperlink based on an internal class variable. * * @param string $url URL to potentially be linked. * @return string|false Linked URL or the original URL. False if 'return_false_on_fail' is true. */ public function maybe_make_link( $url ) { if ( $this->return_false_on_fail ) { return false; } $output = ( $this->linkifunknown ) ? '' . esc_html( $url ) . '' : $url; /** * Filters the returned, maybe-linked embed URL. * * @since 2.9.0 * * @param string $output The linked or original URL. * @param string $url The original URL. */ return apply_filters( 'embed_maybe_make_link', $output, $url ); } /** * Finds the oEmbed cache post ID for a given cache key. * * @since 4.9.0 * * @param string $cache_key oEmbed cache key. * @return int|null Post ID on success, null on failure. */ public function find_oembed_post_id( $cache_key ) { $cache_group = 'oembed_cache_post'; $oembed_post_id = wp_cache_get( $cache_key, $cache_group ); if ( $oembed_post_id && 'oembed_cache' === get_post_type( $oembed_post_id ) ) { return $oembed_post_id; } $oembed_post_query = new WP_Query( array( 'post_type' => 'oembed_cache', 'post_status' => 'publish', 'name' => $cache_key, 'posts_per_page' => 1, 'no_found_rows' => true, 'cache_results' => true, 'update_post_meta_cache' => false, 'update_post_term_cache' => false, 'lazy_load_term_meta' => false, ) ); if ( ! empty( $oembed_post_query->posts ) ) { // Note: 'fields' => 'ids' is not being used in order to cache the post object as it will be needed. $oembed_post_id = $oembed_post_query->posts[0]->ID; wp_cache_set( $cache_key, $oembed_post_id, $cache_group ); return $oembed_post_id; } return null; } }