PluginProbe ʕ •ᴥ•ʔ
EmbedPress – PDF Embedder, Embed PDF viewer, YouTube Videos, 3D FlipBook, Social feeds & more / 1.4.2
EmbedPress – PDF Embedder, Embed PDF viewer, YouTube Videos, 3D FlipBook, Social feeds & more v1.4.2
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 / Disabler.php
embedpress / EmbedPress Last commit date
Ends 9 years ago Plugins 9 years ago Providers 9 years ago AutoLoader.php 9 years ago Core.php 9 years ago Disabler.php 9 years ago Loader.php 9 years ago Shortcode.php 9 years ago Updater.php 9 years ago index.html 9 years ago
Disabler.php
135 lines
1 <?php
2 namespace EmbedPress;
3
4 use \EmbedPress\Shortcode;
5
6 (defined('ABSPATH') && defined('EMBEDPRESS_IS_LOADED')) or die("No direct script access allowed.");
7
8 /**
9 * Entity responsible for replace the WordPress default embed-related shortcodes with the EmbedPress one.
10 *
11 * @package EmbedPress
12 * @author PressShack <help@pressshack.com>
13 * @copyright Copyright (C) 2016 Open Source Training, LLC. All rights reserved.
14 * @license GPLv2 or later
15 * @since 1.0.0
16 */
17 class Disabler
18 {
19 /**
20 * Method that replaces the embed shortcodes.
21 *
22 * @since 1.0.0
23 *
24 * @return void
25 */
26 public static function run()
27 {
28 self::disableNativeEmbedHooks();
29
30 Shortcode::register();
31 }
32
33 /**
34 * Disable all actions/filters related to the embed. This is required to make sure our "shortcode" overrides the 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, array("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', array('\EmbedPress\Disabler', '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', array('\EmbedPress\Disabler', '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', array($wp_embed, 'run_shortcode'), 8);
87 remove_filter('the_content', array($wp_embed, 'autoembed'), 8);
88
89 // Remove {@link WP_Embed::shortcode()} from execution.
90 remove_shortcode(EMBEDPRESS_SHORTCODE);
91
92 wp_deregister_script('wp-embed');
93
94 add_filter('http_request_host_is_external', array('\EmbedPress\Core', 'allowApiHost'), 10, 3);
95 }
96
97 /**
98 * Remove all rewrite rules related to embeds.
99 *
100 * @since 1.0.0
101 * @static
102 *
103 * @param array $rules WordPress rewrite rules.
104 * @return array
105 */
106 public static function disableDefaultEmbedRewriteRules($rules)
107 {
108 if (count($rules) > 0) {
109 foreach ($rules as $rule => $rewrite) {
110 if (strpos($rewrite, 'embed=true') !== false) {
111 unset($rules[$rule]);
112 }
113 }
114 }
115
116 return $rules;
117 }
118
119 /**
120 * Disable all TinyMCE plugins related to the embed.
121 *
122 * @since 1.0.0
123 * @static
124 *
125 * @param array $plugins An array containing enabled plugins.
126 * @return array
127 */
128 public static function disableDefaultEmbedTinyMCERelatedPlugins($plugins)
129 {
130 $blackListedPlugins = array("wpembed", "wpview");
131
132 return array_diff($plugins, $blackListedPlugins);
133 }
134 }
135