/* To disable the Gutenberg’s CSS loading on the front-end */ function tw_unload_files() { wp_dequeue_style ( 'wp-block-library' ); wp_dequeue_style ( 'wp-block-library-theme' ); } add_action( 'wp_enqueue_scripts', 'tw_unload_files', 100 ); /* To disable Elementor’s Google font */ add_filter( 'elementor/frontend/print_google_fonts', '__return_false' ); /*To disable Elementor’s Font Awesome */ add_action('elementor/frontend/after_register_styles',function() { foreach( [ 'solid', 'regular', 'brands' ] as $style ) { wp_deregister_style( 'elementor-icons-fa-' . $style ); } }, 20 ); /*To disable Elementor’s icons (eicons) */ function ti_unload_files() { if ( is_admin() || current_user_can( 'manage_options' ) ) { return; } wp_deregister_style( 'elementor-icons' ); } add_action( 'wp_enqueue_scripts', 'ti_unload_files', 100 ); /*To fix “Image elements do not have explicit width and height” warning from CWV / PSI */ add_filter( 'the_content', 'add_image_dimensions' ); function add_image_dimensions( $content ) { preg_match_all( '/]+>/i', $content, $images); if (count($images) < 1) return $content; foreach ($images[0] as $image) { preg_match_all( '/(alt|title|src|width|class|id|height)=("[^"]*")/i', $image, $img ); if ( !in_array( 'src', $img[1] ) ) continue; if ( !in_array( 'width', $img[1] ) || !in_array( 'height', $img[1] ) ) { $src = $img[2][ array_search('src', $img[1]) ]; $alt = in_array( 'alt', $img[1] ) ? ' alt=' . $img[2][ array_search('alt', $img[1]) ] : ''; $title = in_array( 'title', $img[1] ) ? ' title=' . $img[2][ array_search('title', $img[1]) ] : ''; $class = in_array( 'class', $img[1] ) ? ' class=' . $img[2][ array_search('class', $img[1]) ] : ''; $id = in_array( 'id', $img[1] ) ? ' id=' . $img[2][ array_search('id', $img[1]) ] : ''; list( $width, $height, $type, $attr ) = getimagesize( str_replace( "\"", "" , $src ) ); $image_tag = sprintf( '', $src, $alt, $title, $class, $id, $width, $height ); $content = str_replace($image, $image_tag, $content); } } return $content; } /** * Disable jQuery migrate */ function dequeue_jquery_migrate( $scripts ) { if ( ! is_admin() && ! empty( $scripts->registered['jquery'] ) ) { $scripts->registered['jquery']->deps = array_diff( $scripts->registered['jquery']->deps, [ 'jquery-migrate' ] ); } } add_action( 'wp_default_scripts', 'dequeue_jquery_migrate' ); /** * Disable the emoji's */ function disable_emojis() { remove_action( 'wp_head', 'print_emoji_detection_script', 7 ); remove_action( 'admin_print_scripts', 'print_emoji_detection_script' ); remove_action( 'wp_print_styles', 'print_emoji_styles' ); remove_action( 'admin_print_styles', 'print_emoji_styles' ); remove_filter( 'the_content_feed', 'wp_staticize_emoji' ); remove_filter( 'comment_text_rss', 'wp_staticize_emoji' ); remove_filter( 'wp_mail', 'wp_staticize_emoji_for_email' ); add_filter( 'tiny_mce_plugins', 'disable_emojis_tinymce' ); add_filter( 'wp_resource_hints', 'disable_emojis_remove_dns_prefetch', 10, 2 ); } add_action( 'init', 'disable_emojis' ); /** * Filter function used to remove the tinymce emoji plugin. * * @param array $plugins * @return array Difference betwen the two arrays */ function disable_emojis_tinymce( $plugins ) { if ( is_array( $plugins ) ) { return array_diff( $plugins, array( 'wpemoji' ) ); } else { return array(); } } /** * Remove emoji CDN hostname from DNS prefetching hints. * * @param array $urls URLs to print for resource hints. * @param string $relation_type The relation type the URLs are printed for. * @return array Difference betwen the two arrays. */ function disable_emojis_remove_dns_prefetch( $urls, $relation_type ) { if ( 'dns-prefetch' == $relation_type ) { /** This filter is documented in wp-includes/formatting.php */ $emoji_svg_url = apply_filters( 'emoji_svg_url', 'https://s.w.org/images/core/emoji/2/svg/' ); $urls = array_diff( $urls, array( $emoji_svg_url ) ); } return $urls; } /** * Disable XML-RPC */ add_filter( 'xmlrpc_enabled', '__return_false' );