AlkantarClanX12
Current Path : /home/thanudqk/128shen.com/wp-content/plugins/embedpress/EmbedPress/ |
Current File : /home/thanudqk/128shen.com/wp-content/plugins/embedpress/EmbedPress/DisablerLegacy.php |
<?php namespace EmbedPress; (defined('ABSPATH') && defined('EMBEDPRESS_IS_LOADED')) or die("No direct script access allowed."); /** * Entity responsible for replace the WordPress default embed-related shortcodes with the EmbedPress one. * * @package EmbedPress * @author EmbedPress <help@embedpress.com> * @copyright Copyright (C) 2023 WPDeveloper. All rights reserved. * @license GPLv3 or later * @since 1.0.0 */ class DisablerLegacy { /** * Method that replaces the embed shortcodes. * * @since 1.0.0 * * @return void */ public static function run() { self::disableNativeEmbedHooks(); Shortcode::register(); } /** * Disable all actions/filters related to the embed. This is required to make sure our "shortcode" overrides the * WordPress one. * * @since 1.0.0 * @access protected * @static * * @return void */ protected static function disableNativeEmbedHooks() { global $wp, $wp_embed; // Remove the embed query var. $wp->public_query_vars = array_diff($wp->public_query_vars, ["embed"]); // Remove the REST API endpoint. remove_action('rest_api_init', 'wp_oembed_register_route'); // Turn off oEmbed auto discovery. add_filter('embed_oembed_discover', '__return_false'); // Don't filter oEmbed results. remove_filter('oembed_dataparse', 'wp_filter_oembed_result', 10); // Remove oEmbed discovery links. remove_action('wp_head', 'wp_oembed_add_discovery_links'); // Remove oEmbed-specific JavaScript from the front-end and back-end. remove_action('wp_head', 'wp_oembed_add_host_js'); // Disable all TinyMCE plugins embed-related. add_filter('tiny_mce_plugins', ['\\EmbedPress\\DisablerLegacy', 'disableDefaultEmbedTinyMCERelatedPlugins']); remove_action('rest_api_init', 'wp_oembed_register_route'); // Remove embed-related scripts from the queue remove_action('embed_head', 'enqueue_embed_scripts'); remove_action('embed_head', 'wp_print_head_scripts'); add_filter('load_default_embeds', false); wp_embed_unregister_handler("video"); wp_embed_unregister_handler("youtube_embed_url"); wp_embed_unregister_handler("googlevideo"); // Remove all embeds rewrite rules. add_filter('rewrite_rules_array', ['\\EmbedPress\\DisablerLegacy', 'disableDefaultEmbedRewriteRules']); // Disable the method that determines if default embed handlers should be loaded. add_filter('wp_maybe_load_embeds', '__return_false'); // Disable the method that transform any URL from content to {@link WP_Embed::shortcode()}. remove_filter('the_content', [$wp_embed, 'run_shortcode'], 8); remove_filter('the_content', [$wp_embed, 'autoembed'], 8); // Remove {@link WP_Embed::shortcode()} from execution. remove_shortcode(EMBEDPRESS_SHORTCODE); // Attempts to embed all URLs in a post. add_filter('the_content', ['\\EmbedPress\\Ends\\Front\\Handler', 'autoEmbedUrls']); wp_deregister_script('wp-embed'); add_filter('http_request_host_is_external', ['\\EmbedPress\\CoreLegacy', 'allowApiHost'], 10, 3); add_action('tiny_mce_before_init', ['\\EmbedPress\\Ends\\Front\\Handler', 'renderPreviewBoxInEditors']); } /** * Remove all rewrite rules related to embeds. * * @since 1.0.0 * @static * * @param array $rules WordPress rewrite rules. * * @return array */ public static function disableDefaultEmbedRewriteRules($rules) { if (count($rules) > 0) { foreach ($rules as $rule => $rewrite) { if (strpos($rewrite, 'embed=true') !== false) { unset($rules[$rule]); } } } return $rules; } /** * Disable all TinyMCE plugins related to the embed. * * @since 1.0.0 * @static * * @param array $plugins An array containing enabled plugins. * * @return array */ public static function disableDefaultEmbedTinyMCERelatedPlugins($plugins) { $blackListedPlugins = ["wpembed", "wpview"]; return array_diff($plugins, $blackListedPlugins); } }