PluginProbe
Admin and Site Enhancements (ASE) / 7.5.2
Admin and Site Enhancements (ASE) v7.5.2
9.1.1 9.1.0 9.0.2 9.0.1 9.0.0 8.9.2 8.9.1 8.9.0 8.8.8 8.8.7 8.8.6 8.8.5 8.8.4 8.8.3 8.8.2 8.8.1 8.8.0 8.7.3 8.7.2 8.7.1 8.2.1 8.2.2 8.2.3 8.3.0 8.3.1 All 273 releases
admin-site-enhancements / classes / class-disable-smaller-components.php
class-disable-smaller-components.php
227 lines 7.6 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace ASENHA\Classes;
4
5 /**
6 * Class for Disable Smaller Components module
7 *
8 * @since 6.9.5
9 */
10 class Disable_Smaller_Components {
11
12 /**
13 * Remove version number from URLs of static resources (CSS, JS)
14 *
15 * @since 5.8.0
16 */
17 public function remove_resource_version_number( $src ) {
18 if ( ! is_user_logged_in() ) {
19 // https://wordpress.org/support/topic/disable-smaller-components-version-can-be-hidden/
20 if ( strpos( $src, 'ver=' ) ) {
21 $src = remove_query_arg( 'ver', $src );
22 }
23 }
24 return $src;
25 }
26
27 /**
28 * Remove generator tag from RSS feed
29 *
30 * @since 7.3.3
31 */
32 public function remove_feed_generator_tag( $generator_type, $type ) {
33 // e.g. <generator>https://wordpress.org/?v=6.6.1</generator>
34 if ( false !== strpos( $generator_type, '<generator>https://wordpress.org/?v=' ) ) {
35 return '';
36 }
37 }
38
39 /**
40 * Disable loading of frontend public assets of dashicons
41 *
42 * @since 4.5.0
43 */
44 public function disable_dashicons_public_assets() {
45 global $pagenow;
46 if ( ! is_user_logged_in() ) {
47
48 // This will get /path/file.php?param=val portion of the full URL
49 $current_request_uri = sanitize_text_field( $_SERVER['REQUEST_URI'] );
50
51 if ( empty( $current_request_uri ) ) {
52 // On the homepage
53 wp_dequeue_style( 'dashicons' );
54 wp_deregister_style( 'dashicons' );
55 } else {
56 // Exclude the login page, where dashicon assets are requred to properly style the page
57 if ( false !== strpos( $current_request_uri, 'wp-login.php' ) || 'wp-login.php' === $pagenow ) {
58 // On wp-login.php, so, do nothing
59 }
60 // Exclude password protection form
61 elseif ( false !== strpos( $current_request_uri, 'protected-page=view' ) ) {
62 // On protected-page=view, so, do nothing
63 }
64 else {
65 // NOT on wp-login.php, e.g. www.example.com/an-article/, so, dequeue dashicons
66 wp_dequeue_style( 'dashicons' );
67 wp_deregister_style( 'dashicons' );
68 }
69 }
70 }
71 }
72
73 /**
74 * Disable emoji support
75 *
76 * @since 4.5.0
77 */
78 public function disable_emoji_support() {
79
80 remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
81 remove_action( 'embed_head', 'print_emoji_detection_script' );
82 remove_action( 'wp_print_styles', 'print_emoji_styles' );
83 remove_filter( 'the_content_feed', 'wp_staticize_emoji' );
84 remove_filter( 'comment_text_rss', 'wp_staticize_emoji' );
85 remove_filter( 'wp_mail', 'wp_staticize_emoji_for_email' );
86 add_action( 'admin_init', [ $this, 'disable_admin_emojis' ] );
87 add_filter( 'emoji_svg_url', '__return_false' );
88 add_filter( 'tiny_mce_plugins', [ $this, 'disable_emoji_for_tinymce' ] );
89 add_filter( 'wp_resource_hints', [ $this, 'disable_emoji_remove_dns_prefetch' ], 10, 2 );
90 add_filter( 'option_use_smilies', '__return_false' );
91
92 }
93
94 /**
95 * Disable jQuery Migrate
96 *
97 * @since 5.8.0
98 * @link https://plugins.trac.wordpress.org/browser/remove-jquery-migrate/trunk/remove-jquery-migrate.php
99 * @param WP_Scripts $scripts WP_Scripts object.
100 */
101 public function disable_jquery_migrate( $scripts ) {
102 if ( ! is_admin() && isset( $scripts->registered['jquery'] ) ) {
103 $script = $scripts->registered['jquery'];
104
105 if ( ! empty( $script->deps ) ) { // Check whether the script has any dependencies
106 $script->deps = array_diff( $script->deps, array( 'jquery-migrate' ) );
107 }
108 }
109 }
110
111 /**
112 * Remove the tinymce emoji plugin
113 *
114 * @since 4.5.0
115 */
116 public function disable_emoji_for_tinymce( $plugins ) {
117
118 if ( is_array( $plugins ) ) {
119 return array_diff( $plugins, array( 'wpemoji' ) );
120 }
121
122 return array();
123
124 }
125
126 /**
127 * Remove emoji CDN hostname from DNS prefetching hints.
128 *
129 * @since 4.5.0
130 */
131 public function disable_emoji_remove_dns_prefetch( $urls, $relation_type ) {
132
133 if ( 'dns-prefetch' == $relation_type ) {
134
135 // Strip out any URLs referencing the WordPress.org emoji location
136 $emoji_svg_url_base = 'https://s.w.org/images/core/emoji/';
137 foreach ( $urls as $key => $url ) {
138 if ( is_string( $url ) && false !== strpos( $url, $emoji_svg_url_base ) ) {
139 unset( $urls[$key] );
140 }
141 }
142
143 }
144
145 return $urls;
146
147 }
148
149 /**
150 * Disable emojis in wp-admin
151 *
152 * @since 4.7.2
153 */
154 public function disable_admin_emojis() {
155 remove_action( 'admin_print_scripts', 'print_emoji_detection_script' );
156 remove_action( 'admin_print_styles', 'print_emoji_styles' );
157 }
158
159 /**
160 * Add loading="eager" attribute for featured images
161 *
162 * @link https://plugins.trac.wordpress.org/browser/disable-lazy-loading/tags/2.1/disable-lazy-loading.php
163 * @since 7.3.0
164 */
165 public function eager_load_featured_images( $attr, $attachment = null ) {
166 $attr['loading'] = 'eager';
167 return $attr;
168 }
169
170 /**
171 * Disable plugin and theme editor
172 *
173 * @since 7.4.5
174 */
175 public function disable_plugin_theme_editor() {
176 $wp_config = new WP_Config_Transformer;
177
178 if ( ! defined( 'DISALLOW_FILE_EDIT' ) ) {
179 define( 'DISALLOW_FILE_EDIT', true );
180 } else {
181 $is_wpconfig_writeable = $wp_config->wpconfig_file( 'writeability' );
182
183 if ( $is_wpconfig_writeable ) {
184 $disallow_file_edit = $wp_config->get_value( 'constant', 'DISALLOW_FILE_EDIT' );
185
186 if ( 'false' == $disallow_file_edit ) {
187 $wp_config_options = array(
188 'add' => true, // Add the config if missing.
189 'raw' => true, // Display value in raw format without quotes.
190 'normalize' => false, // Normalize config output using WP Coding Standards.
191 );
192
193 $update_success = $wp_config->update( 'constant', 'DISALLOW_FILE_EDIT', 'true', $wp_config_options );
194 }
195 }
196 }
197 }
198
199 /**
200 * Enable plugin and theme editor
201 *
202 * @since 7.4.5
203 */
204 public function enable_plugin_theme_editor() {
205 $wp_config = new WP_Config_Transformer;
206
207 if ( ! defined( 'DISALLOW_FILE_EDIT' ) ) {
208 define( 'DISALLOW_FILE_EDIT', false );
209 } else {
210 $is_wpconfig_writeable = $wp_config->wpconfig_file( 'writeability' );
211
212 if ( $is_wpconfig_writeable ) {
213 $disallow_file_edit = $wp_config->get_value( 'constant', 'DISALLOW_FILE_EDIT' );
214
215 if ( 'true' == $disallow_file_edit ) {
216 $wp_config_options = array(
217 'add' => true, // Add the config if missing.
218 'raw' => true, // Display value in raw format without quotes.
219 'normalize' => false, // Normalize config output using WP Coding Standards.
220 );
221
222 $update_success = $wp_config->update( 'constant', 'DISALLOW_FILE_EDIT', 'false', $wp_config_options );
223 }
224 }
225 }
226 }
227 }