PluginProbe ʕ •ᴥ•ʔ
EmbedPress – PDF Embedder, Embed PDF viewer, YouTube Videos, 3D FlipBook, Social feeds & more / 2.0.2
EmbedPress – PDF Embedder, Embed PDF viewer, YouTube Videos, 3D FlipBook, Social feeds & more v2.0.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
AMP 8 years ago Ends 8 years ago Plugins 8 years ago Providers 8 years ago AutoLoader.php 8 years ago Core.php 8 years ago Disabler.php 8 years ago Loader.php 8 years ago Shortcode.php 8 years ago Updater.php 9 years ago index.html 9 years ago
Disabler.php
140 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) 2017 PressShack. 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 // Attempts to embed all URLs in a post.
93 add_filter('the_content', array('\EmbedPress\Ends\Front\Handler', 'autoEmbedUrls'));
94
95 wp_deregister_script('wp-embed');
96
97 add_filter('http_request_host_is_external', array('\EmbedPress\Core', 'allowApiHost'), 10, 3);
98
99 add_action('tiny_mce_before_init', array('\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 * @return array
110 */
111 public static function disableDefaultEmbedRewriteRules($rules)
112 {
113 if (count($rules) > 0) {
114 foreach ($rules as $rule => $rewrite) {
115 if (strpos($rewrite, 'embed=true') !== false) {
116 unset($rules[$rule]);
117 }
118 }
119 }
120
121 return $rules;
122 }
123
124 /**
125 * Disable all TinyMCE plugins related to the embed.
126 *
127 * @since 1.0.0
128 * @static
129 *
130 * @param array $plugins An array containing enabled plugins.
131 * @return array
132 */
133 public static function disableDefaultEmbedTinyMCERelatedPlugins($plugins)
134 {
135 $blackListedPlugins = array("wpembed", "wpview");
136
137 return array_diff($plugins, $blackListedPlugins);
138 }
139 }
140