PluginProbe ʕ •ᴥ•ʔ
EmbedPress – PDF Embedder, Embed PDF viewer, YouTube Videos, 3D FlipBook, Social feeds & more / 1.0.0
EmbedPress – PDF Embedder, Embed PDF viewer, YouTube Videos, 3D FlipBook, Social feeds & more v1.0.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
125 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
16 */
17 class Disabler
18 {
19 /**
20 * Method that replaces the embed shortcodes.
21 *
22 * @since 1.0
23 */
24 public function run()
25 {
26 self::disableNativeEmbedHooks();
27
28 Shortcode::register();
29 }
30
31 /**
32 * Disable all actions/filters related to the embed. This is required to make sure our "shortcode" overrides the WordPress one.
33 *
34 * @since 1.0
35 * @static
36 */
37 protected static function disableNativeEmbedHooks()
38 {
39 global $wp, $wp_embed;
40
41 // Remove the embed query var.
42 $wp->public_query_vars = array_diff($wp->public_query_vars, array("embed"));
43
44 // Remove the REST API endpoint.
45 remove_action('rest_api_init', 'wp_oembed_register_route');
46
47 // Turn off oEmbed auto discovery.
48 add_filter('embed_oembed_discover', '__return_false');
49
50 // Don't filter oEmbed results.
51 remove_filter('oembed_dataparse', 'wp_filter_oembed_result', 10);
52
53 // Remove oEmbed discovery links.
54 remove_action('wp_head', 'wp_oembed_add_discovery_links');
55
56 // Remove oEmbed-specific JavaScript from the front-end and back-end.
57 remove_action('wp_head', 'wp_oembed_add_host_js');
58
59 // Disable all TinyMCE plugins embed-related.
60 add_filter('tiny_mce_plugins', array('\EmbedPress\Disabler', 'disableDefaultEmbedTinyMCERelatedPlugins'));
61
62 remove_action('rest_api_init', 'wp_oembed_register_route');
63
64 // Remove embed-related scripts from the queue
65 remove_action('embed_head', 'enqueue_embed_scripts');
66 remove_action('embed_head', 'wp_print_head_scripts');
67
68 add_filter('load_default_embeds', false);
69
70 wp_embed_unregister_handler("video");
71 wp_embed_unregister_handler("youtube_embed_url");
72 wp_embed_unregister_handler("googlevideo");
73
74 // Remove all embeds rewrite rules.
75 add_filter('rewrite_rules_array', array('\EmbedPress\Disabler', 'disableDefaultEmbedRewriteRules'));
76
77 // Disable the method that determines if default embed handlers should be loaded.
78 add_filter('wp_maybe_load_embeds', '__return_false');
79
80 // Disable the method that transform any URL from content to {@link WP_Embed::shortcode()}.
81 remove_filter('the_content', array($wp_embed, 'run_shortcode'), 8);
82 remove_filter('the_content', array($wp_embed, 'autoembed'), 8);
83
84 // Remove {@link WP_Embed::shortcode()} from execution.
85 remove_shortcode(EMBEDPRESS_SHORTCODE);
86
87 wp_deregister_script('wp-embed');
88 }
89
90 /**
91 * Remove all rewrite rules related to embeds.
92 *
93 * @since 1.0
94 *
95 * @param array $rules WordPress rewrite rules.
96 * @return array
97 */
98 public static function disableDefaultEmbedRewriteRules($rules)
99 {
100 if (count($rules) > 0) {
101 foreach ($rules as $rule => $rewrite) {
102 if (strpos($rewrite, 'embed=true') !== false) {
103 unset($rules[$rule]);
104 }
105 }
106 }
107
108 return $rules;
109 }
110
111 /**
112 * Disable all TinyMCE plugins related to the embed.
113 *
114 * @since 1.0
115 * @static
116 *
117 * @param array $plugins An array containing enabled plugins.
118 */
119 public static function disableDefaultEmbedTinyMCERelatedPlugins($plugins)
120 {
121 $blackListedPlugins = array("wpembed", "wpview");
122
123 return array_diff($plugins, $blackListedPlugins);
124 }
125 }