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