PluginProbe ʕ •ᴥ•ʔ
EmbedPress – PDF Embedder, 3D PDF FlipBook, Google Reviews, YouTube Videos, Upload & Embed PDF documents / 1.5.0
EmbedPress – PDF Embedder, 3D PDF FlipBook, Google Reviews, YouTube Videos, Upload & Embed PDF documents v1.5.0
4.6.1 4.6.0 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
138 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 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 // 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
100 /**
101 * Remove all rewrite rules related to embeds.
102 *
103 * @since 1.0.0
104 * @static
105 *
106 * @param array $rules WordPress rewrite rules.
107 * @return array
108 */
109 public static function disableDefaultEmbedRewriteRules($rules)
110 {
111 if (count($rules) > 0) {
112 foreach ($rules as $rule => $rewrite) {
113 if (strpos($rewrite, 'embed=true') !== false) {
114 unset($rules[$rule]);
115 }
116 }
117 }
118
119 return $rules;
120 }
121
122 /**
123 * Disable all TinyMCE plugins related to the embed.
124 *
125 * @since 1.0.0
126 * @static
127 *
128 * @param array $plugins An array containing enabled plugins.
129 * @return array
130 */
131 public static function disableDefaultEmbedTinyMCERelatedPlugins($plugins)
132 {
133 $blackListedPlugins = array("wpembed", "wpview");
134
135 return array_diff($plugins, $blackListedPlugins);
136 }
137 }
138