PluginProbe ʕ •ᴥ•ʔ
EmbedPress – PDF Embedder, Embed PDF viewer, YouTube Videos, 3D FlipBook, Social feeds & more / trunk
EmbedPress – PDF Embedder, Embed PDF viewer, YouTube Videos, 3D FlipBook, Social feeds & more vtrunk
4.5.6 4.5.5 4.5.4 4.5.3 4.5.2 trunk 1.0.0 1.1.0 1.1.1 1.1.2 1.1.3 1.2.0 1.3.0 1.3.1 1.4.0 1.4.1 1.4.2 1.4.3 1.4.4 1.5.0 1.6.0 1.6.1 1.6.2 1.6.3 1.7.0 1.7.1 1.7.2 1.7.3 1.7.4 1.7.5 2.0.0 2.0.1 2.0.2 2.0.3 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.2.0 2.2.1 2.2.2 2.3.0 2.3.1 2.3.2 2.3.3 2.4.0 2.4.1 2.5.0 2.5.1 2.5.2 2.5.3 2.5.4 2.5.5 2.6.0 2.6.1 2.6.2 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.7.6 2.7.7 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.1.0 3.1.1 3.1.2 3.1.3 3.2.0 3.2.1 3.3.0 3.3.1 3.3.2 3.3.3 3.3.4 3.3.5 3.3.6 3.3.7 3.4.0 3.4.1 3.4.2 3.4.3 3.5.0 3.5.1 3.5.2 3.5.3 3.6.0 3.6.1 3.6.2 3.6.3 3.6.4 3.6.5 3.6.6 3.6.7 3.6.8 3.7.0 3.7.1 3.7.2 3.7.3 3.8.0 3.8.1 3.8.2 3.8.3 3.8.4 3.8.5 3.9.0 3.9.1 3.9.10 3.9.11 3.9.12 3.9.13 3.9.14 3.9.15 3.9.16 3.9.17 3.9.2 3.9.3 3.9.4 3.9.5 3.9.6 3.9.7 3.9.8 3.9.9 4.0.0 4.0.1 4.0.10 4.0.11 4.0.12 4.0.13 4.0.14 4.0.2 4.0.3 4.0.4 4.0.5 4.0.6 4.0.7 4.0.8 4.0.9 4.1.0 4.1.1 4.1.10 4.1.2 4.1.3 4.1.4 4.1.5 4.1.6 4.1.7 4.1.8 4.1.9 4.2.0 4.2.1 4.2.2 4.2.3 4.2.4 4.2.5 4.2.6 4.2.7 4.2.8 4.2.9 4.3.0 4.3.1 4.4.0 4.4.1 4.4.10 4.4.11 4.4.2 4.4.3 4.4.4 4.4.5 4.4.6 4.4.7 4.4.8 4.4.9 4.5.0 4.5.1
embedpress / EmbedPress / DisablerLegacy.php
embedpress / EmbedPress Last commit date
AMP 2 years ago Analytics 1 month ago Elementor 1 week ago Ends 1 month ago Gutenberg 1 week ago Includes 1 week ago Plugins 1 year ago Providers 3 weeks ago ThirdParty 1 month ago AutoLoader.php 2 years ago Compatibility.php 2 years ago Core.php 3 weeks ago CoreLegacy.php 2 months ago DisablerLegacy.php 2 years ago Loader.php 2 years ago MilestoneNotification.php 6 months ago RestAPI.php 3 weeks ago Shortcode.php 1 week ago index.html 7 years ago simple_html_dom.php 4 years ago
DisablerLegacy.php
142 lines
1 <?php
2
3 namespace EmbedPress;
4
5 (defined('ABSPATH') && defined('EMBEDPRESS_IS_LOADED')) or die("No direct script access allowed.");
6
7 /**
8 * Entity responsible for replace the WordPress default embed-related shortcodes with the EmbedPress one.
9 *
10 * @package EmbedPress
11 * @author EmbedPress <help@embedpress.com>
12 * @copyright Copyright (C) 2023 WPDeveloper. All rights reserved.
13 * @license GPLv3 or later
14 * @since 1.0.0
15 */
16 class DisablerLegacy
17 {
18 /**
19 * Method that replaces the embed shortcodes.
20 *
21 * @since 1.0.0
22 *
23 * @return void
24 */
25 public static function run()
26 {
27 self::disableNativeEmbedHooks();
28
29 Shortcode::register();
30 }
31
32 /**
33 * Disable all actions/filters related to the embed. This is required to make sure our "shortcode" overrides the
34 * WordPress one.
35 *
36 * @since 1.0.0
37 * @access protected
38 * @static
39 *
40 * @return void
41 */
42 protected static function disableNativeEmbedHooks()
43 {
44 global $wp, $wp_embed;
45
46 // Remove the embed query var.
47 $wp->public_query_vars = array_diff($wp->public_query_vars, ["embed"]);
48
49 // Remove the REST API endpoint.
50 remove_action('rest_api_init', 'wp_oembed_register_route');
51
52 // Turn off oEmbed auto discovery.
53 add_filter('embed_oembed_discover', '__return_false');
54
55 // Don't filter oEmbed results.
56 remove_filter('oembed_dataparse', 'wp_filter_oembed_result', 10);
57
58 // Remove oEmbed discovery links.
59 remove_action('wp_head', 'wp_oembed_add_discovery_links');
60
61 // Remove oEmbed-specific JavaScript from the front-end and back-end.
62 remove_action('wp_head', 'wp_oembed_add_host_js');
63
64 // Disable all TinyMCE plugins embed-related.
65 add_filter('tiny_mce_plugins', ['\\EmbedPress\\DisablerLegacy', 'disableDefaultEmbedTinyMCERelatedPlugins']);
66
67 remove_action('rest_api_init', 'wp_oembed_register_route');
68
69 // Remove embed-related scripts from the queue
70 remove_action('embed_head', 'enqueue_embed_scripts');
71 remove_action('embed_head', 'wp_print_head_scripts');
72
73 add_filter('load_default_embeds', false);
74
75 wp_embed_unregister_handler("video");
76 wp_embed_unregister_handler("youtube_embed_url");
77 wp_embed_unregister_handler("googlevideo");
78
79 // Remove all embeds rewrite rules.
80 add_filter('rewrite_rules_array', ['\\EmbedPress\\DisablerLegacy', 'disableDefaultEmbedRewriteRules']);
81
82 // Disable the method that determines if default embed handlers should be loaded.
83 add_filter('wp_maybe_load_embeds', '__return_false');
84
85 // Disable the method that transform any URL from content to {@link WP_Embed::shortcode()}.
86 remove_filter('the_content', [$wp_embed, 'run_shortcode'], 8);
87 remove_filter('the_content', [$wp_embed, 'autoembed'], 8);
88
89 // Remove {@link WP_Embed::shortcode()} from execution.
90 remove_shortcode(EMBEDPRESS_SHORTCODE);
91
92 // Attempts to embed all URLs in a post.
93 add_filter('the_content', ['\\EmbedPress\\Ends\\Front\\Handler', 'autoEmbedUrls']);
94
95 wp_deregister_script('wp-embed');
96
97 add_filter('http_request_host_is_external', ['\\EmbedPress\\CoreLegacy', 'allowApiHost'], 10, 3);
98
99 add_action('tiny_mce_before_init', ['\\EmbedPress\\Ends\\Front\\Handler', 'renderPreviewBoxInEditors']);
100 }
101
102 /**
103 * Remove all rewrite rules related to embeds.
104 *
105 * @since 1.0.0
106 * @static
107 *
108 * @param array $rules WordPress rewrite rules.
109 *
110 * @return array
111 */
112 public static function disableDefaultEmbedRewriteRules($rules)
113 {
114 if (count($rules) > 0) {
115 foreach ($rules as $rule => $rewrite) {
116 if (strpos($rewrite, 'embed=true') !== false) {
117 unset($rules[$rule]);
118 }
119 }
120 }
121
122 return $rules;
123 }
124
125 /**
126 * Disable all TinyMCE plugins related to the embed.
127 *
128 * @since 1.0.0
129 * @static
130 *
131 * @param array $plugins An array containing enabled plugins.
132 *
133 * @return array
134 */
135 public static function disableDefaultEmbedTinyMCERelatedPlugins($plugins)
136 {
137 $blackListedPlugins = ["wpembed", "wpview"];
138
139 return array_diff($plugins, $blackListedPlugins);
140 }
141 }
142