完整的清理加固代码升级版带禁止谷歌字体和禁止图片裁剪

<?php 

/**
 * Completely disable Google Fonts across all themes & plugins
 * 移除谷歌字体,禁用图片裁剪多尺寸,清理和加固必要的措施
 */
/**
 * Completely disable Google Fonts
 */

// Disable Google Fonts on Frontend
add_filter('style_loader_src', 'disable_google_fonts', 999, 2);
function disable_google_fonts($src, $handle) {
    if (strpos($src, 'fonts.googleapis.com') !== false || 
        strpos($src, 'fonts.gstatic.com') !== false) {
        return false;
    }
    return $src;
}

// Remove Google Fonts from wp_enqueue_style
add_action('wp_enqueue_scripts', 'remove_google_fonts', 999);
function remove_google_fonts() {
    global $wp_styles;
    if (isset($wp_styles->registered)) {
        foreach ($wp_styles->registered as $handle => $data) {
            if (strpos($data->src, 'fonts.googleapis.com') !== false || 
                strpos($data->src, 'fonts.gstatic.com') !== false) {
                wp_dequeue_style($handle);
                wp_deregister_style($handle);
            }
        }
    }
}

// Disable Google Fonts in Block Editor (Gutenberg)
add_action('enqueue_block_editor_assets', 'remove_google_fonts_block_editor', 999);
function remove_google_fonts_block_editor() {
    global $wp_styles;
    if (isset($wp_styles->registered)) {
        foreach ($wp_styles->registered as $handle => $data) {
            if (strpos($data->src, 'fonts.googleapis.com') !== false || 
                strpos($data->src, 'fonts.gstatic.com') !== false) {
                wp_dequeue_style($handle);
                wp_deregister_style($handle);
            }
        }
    }
}

// Remove Google Fonts preconnect/dns-prefetch
add_filter('wp_resource_hints', 'remove_google_fonts_dns_prefetch', 10, 2);
function remove_google_fonts_dns_prefetch($hints, $relation_type) {
    if ('dns-prefetch' === $relation_type || 'preconnect' === $relation_type) {
        foreach ($hints as $key => $hint) {
            if (strpos($hint, 'fonts.googleapis.com') !== false || 
                strpos($hint, 'fonts.gstatic.com') !== false) {
                unset($hints[$key]);
            }
        }
    }
    return $hints;
}

// Disable Google Fonts in Admin/Backend
add_action('admin_enqueue_scripts', 'remove_google_fonts_admin', 999);
function remove_google_fonts_admin() {
    global $wp_styles;
    if (isset($wp_styles->registered)) {
        foreach ($wp_styles->registered as $handle => $data) {
            if (strpos($data->src, 'fonts.googleapis.com') !== false || 
                strpos($data->src, 'fonts.gstatic.com') !== false) {
                wp_dequeue_style($handle);
                wp_deregister_style($handle);
            }
        }
    }
}


// finsih disable google fonts


// Disable all default image sizes
function disable_image_sizes() {
    // Removes the default sizes
    remove_image_size('thumbnail');
    remove_image_size('medium');
    remove_image_size('medium_large');
    remove_image_size('large');
    remove_image_size('1536x1536');
    remove_image_size('2048x2048');

    // Remove any custom image sizes added by plugins or theme
    foreach ( get_intermediate_image_sizes() as $size ) {
        remove_image_size($size);
    }
}
add_action('init', 'disable_image_sizes');

// Disable generation of intermediate sizes
function stop_image_resizing($sizes) {
    return [];
}
add_filter('intermediate_image_sizes_advanced', 'stop_image_resizing');

// Disable responsive image srcset
add_filter('wp_calculate_image_srcset_meta', '__return_null');
add_filter('wp_calculate_image_srcset', '__return_false');
add_filter('wp_calculate_image_sizes', '__return_false');

// Optional: prevent big image scaling (WordPress 5.3+ feature)
add_filter('big_image_size_threshold', '__return_false');


// Remove version from <meta> generator tag
add_filter( 'the_generator', '__return_empty_string' );

// Remove version query parameter from enqueued CSS/JS
function remove_wp_version_param( $src ) {
    if ( strpos( $src, 'ver=' ) ) {
        $src = remove_query_arg( 'ver', $src );
    }
    return $src;
}
add_filter( 'style_loader_src',  'remove_wp_version_param' );
add_filter( 'script_loader_src', 'remove_wp_version_param' );



// Completely disable XML-RPC
add_filter( 'xmlrpc_enabled', '__return_false' );

// Optionally block access at .htaccess:
// <Files xmlrpc.php>
//     Order Deny,Allow
//     Deny from all
// </Files>

add_filter( 'rest_authentication_errors', function( $result ) {
    if ( ! empty( $result ) ) {
        return $result;
    }
    if ( ! is_user_logged_in() ) {
        return new WP_Error(
            'rest_not_logged_in',
            'You must be logged in to access the REST API.',
            array( 'status' => 401 )
        );
    }
    return $result;
});

// In wp-config.php, set:
define( 'DISALLOW_FILE_EDIT', true );

function disable_wp_emojicons() {
    remove_action( 'wp_head',      'print_emoji_detection_script', 7 );
    remove_action( 'wp_print_styles', 'print_emoji_styles' );
    remove_filter( 'the_content',  'wp_staticize_emoji' );
    remove_filter( 'the_excerpt','wp_staticize_emoji' );
    remove_filter( 'comment_text','wp_staticize_emoji_for_comment' );
}
add_action( 'init', 'disable_wp_emojicons' );
add_filter( 'emoji_svg_url', '__return_false' );
add_filter( 'emoji_src', '__return_false' );
add_filter( 'wp_resource_hints', function( $urls, $relation_type ) {
    if ( 'dns-prefetch' === $relation_type ) {
        return array_diff( $urls, array( 'https://s.w.org/' ) );
    }
    return $urls;
}, 10, 2 );


function disable_wp_embeds() {
    remove_action( 'rest_api_init',        'wp_oembed_register_route' );
    remove_filter( 'oembed_dataparse',     'wp_filter_oembed_result' );
    remove_action( 'wp_head',              'wp_oembed_add_discovery_links' );
    remove_action( 'wp_head',              'wp_oembed_add_host_js' );
    add_filter( 'embed_oembed_discover',  '__return_false' );
    add_filter( 'tiny_mce_plugins', function( $plugins ) {
        return array_diff( $plugins, ['wpembed'] );
    });
}
add_action( 'init', 'disable_wp_embeds', 9999 );


function dequeue_unused_assets() {
    if ( ! is_admin() ) {
        // Example: remove Gutenberg block front-end CSS
        wp_dequeue_style( 'wp-block-library' );
        wp_dequeue_style( 'wp-block-library-theme' );
    }
}
add_action( 'wp_enqueue_scripts', 'dequeue_unused_assets', 100 );


add_filter( 'wp_get_attachment_image_attributes', function( $attr ) {
    $attr['loading'] = 'lazy';
    return $attr;
});
add_filter( 'iframe_embed_html', function( $html ) {
    return str_replace( '<iframe', '<iframe loading="lazy"', $html );
});

// In wp-config.php:
// define( 'WP_POST_REVISIONS', 3 );
// define( 'AUTOSAVE_INTERVAL', 300 );  // seconds

// Throttle Heartbeat API:
add_filter( 'heartbeat_settings', function( $settings ) {
    $settings['interval'] = 60; // seconds
    return $settings;
});
add_action( 'shutdown', function() {
    global $wpdb;
    $wpdb->query(
        "DELETE FROM {$wpdb->options}
         WHERE option_name LIKE '\_transient\_%'
           AND option_name NOT LIKE '\_transient\_timeout\_%'"
    );
});



// disable email 

// 2. Core updates
add_filter( 'auto_core_update_send_email',    '__return_false' );

// 3. Plugin updates
add_filter( 'auto_plugin_update_send_email',  '__return_false' );

// 4. Theme updates
add_filter( 'auto_theme_update_send_email',   '__return_false' );


更新版本

<?php
/*
Plugin Name: Pro Optimization Suite
Description: Complete disable Google Fonts, Image Size cleanup, Security hardening, and Bloat removal.
Version: 3.0
*/

// =========================================================================
// 1. GOOGLE FONTS KILL SWITCH (Aggressive)
// =========================================================================

// Method 1: Scan all registered styles and dequeue anything from Google
function pro_optim_remove_google_fonts_dequeue() {
    global $wp_styles;
    if ( isset( $wp_styles->registered ) ) {
        foreach ( $wp_styles->registered as $handle => $data ) {
            // Check for google fonts domains
            if ( strpos( $data->src, 'fonts.googleapis.com' ) !== false || strpos( $data->src, 'fonts.gstatic.com' ) !== false ) {
                wp_dequeue_style( $handle );
                wp_deregister_style( $handle );
            }
        }
    }
}
// Run late to catch themes/plugins
add_action( 'wp_enqueue_scripts', 'pro_optim_remove_google_fonts_dequeue', 100 );
add_action( 'admin_enqueue_scripts', 'pro_optim_remove_google_fonts_dequeue', 100 );
add_action( 'enqueue_block_editor_assets', 'pro_optim_remove_google_fonts_dequeue', 100 );

// Method 2: Filter the generated HTML link tags just in case
function pro_optim_disable_google_fonts_src( $src, $handle ) {
    if ( strpos( $src, 'fonts.googleapis.com' ) !== false || strpos( $src, 'fonts.gstatic.com' ) !== false ) {
        return false;
    }
    return $src;
}
add_filter( 'style_loader_src', 'pro_optim_disable_google_fonts_src', 999, 2 );

// Method 3: Remove DNS Prefetch for Fonts
function pro_optim_remove_font_hints( $hints, $relation_type ) {
    if ( 'dns-prefetch' === $relation_type || 'preconnect' === $relation_type ) {
        foreach ( $hints as $key => $hint ) {
            if ( strpos( $hint, 'fonts.googleapis.com' ) !== false || strpos( $hint, 'fonts.gstatic.com' ) !== false ) {
                unset( $hints[$key] );
            }
        }
    }
    return $hints;
}
add_filter( 'wp_resource_hints', 'pro_optim_remove_font_hints', 10, 2 );

// =========================================================================
// 2. IMAGE OPTIMIZATION (Aggressive but Safe)
// =========================================================================

function pro_optim_disable_image_sizes( $sizes ) {
    // We KEEP 'thumbnail' because removing it breaks the WP Admin Media Library Grid
    // We remove everything else to save disk space
    
    // Default WP sizes
    unset( $sizes['medium'] );
    unset( $sizes['medium_large'] );
    unset( $sizes['large'] );
    unset( $sizes['1536x1536'] );
    unset( $sizes['2048x2048'] );
    
    // If you want to be extremely aggressive and kill 'thumbnail' too (NOT RECOMMENDED), uncomment below:
    // unset( $sizes['thumbnail'] ); 
    
    return $sizes;
}
add_filter( 'intermediate_image_sizes_advanced', 'pro_optim_disable_image_sizes' );

// Prevent WP from calculating responsive images (srcset)
add_filter( 'wp_calculate_image_srcset_meta', '__return_null' );
add_filter( 'wp_calculate_image_srcset', '__return_false' );

// Disable Scaling of big images (Threshold)
add_filter( 'big_image_size_threshold', '__return_false' );

// Add Lazy Load to all images
add_filter( 'wp_get_attachment_image_attributes', function( $attr ) {
    $attr['loading'] = 'lazy';
    return $attr;
});

// =========================================================================
// 3. HEAD & BLOAT CLEANUP
// =========================================================================

function pro_optim_head_cleanup() {
    // 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_filter( 'the_content_feed', 'wp_staticize_emoji' );
    remove_filter( 'comment_text_rss', 'wp_staticize_emoji' );
    remove_filter( 'wp_mail', 'wp_staticize_emoji_for_email' );

    // OEmbeds (Embeds from other sites)
    remove_action( 'wp_head', 'wp_oembed_add_discovery_links' );
    remove_action( 'wp_head', 'wp_oembed_add_host_js' );
    remove_action( 'rest_api_init', 'wp_oembed_register_route' );
    remove_filter( 'oembed_dataparse', 'wp_filter_oembed_result' );

    // Meta Tags
    remove_action( 'wp_head', 'wp_generator' ); // Version number
    remove_action( 'wp_head', 'wlwmanifest_link' ); // Windows Live Writer
    remove_action( 'wp_head', 'rsd_link' ); // Really Simple Discovery
    remove_action( 'wp_head', 'wp_shortlink_wp_head' ); // Shortlink
    
    // RSS Feeds (Enable if you run a blog)
    remove_action( 'wp_head', 'feed_links', 2 ); 
    remove_action( 'wp_head', 'feed_links_extra', 3 );
}
add_action( 'init', 'pro_optim_head_cleanup' );

// Remove version query parameters (?ver=X.X) from scripts/styles
function pro_optim_remove_ver_param( $src ) {
    if ( strpos( $src, 'ver=' ) ) {
        $src = remove_query_arg( 'ver', $src );
    }
    return $src;
}
add_filter( 'style_loader_src', 'pro_optim_remove_ver_param', 9999 );
add_filter( 'script_loader_src', 'pro_optim_remove_ver_param', 9999 );

// =========================================================================
// 4. SCRIPT & STYLE MANAGEMENT (Gutenberg & jQuery)
// =========================================================================

function pro_optim_asset_management() {
    if ( ! is_admin() ) {
        // Remove jQuery Migrate
        wp_deregister_script( 'jquery-migrate' );

        // Remove WP Embed script
        wp_deregister_script( 'wp-embed' );

        // Remove Global Styles (The huge inline SVG/CSS block)
        wp_dequeue_style( 'global-styles' );
        
        // Remove Classic Theme Styles
        wp_dequeue_style( 'classic-theme-styles' );

        // --- GUTENBERG MANAGEMENT ---
        // Uncomment the lines below ONLY if you DO NOT use Gutenberg at all.
        // wp_dequeue_style( 'wp-block-library' );
        // wp_dequeue_style( 'wp-block-library-theme' );
        // wp_dequeue_style( 'wc-blocks-style' ); // If WooCommerce
    }
}
add_action( 'wp_enqueue_scripts', 'pro_optim_asset_management', 100 );

// Remove Global Inline Styles (SVG Filters)
remove_action( 'wp_enqueue_scripts', 'wp_enqueue_global_styles' );
remove_action( 'wp_body_open', 'wp_global_styles_render_svg_filters' );

// Smart Gutenberg Loading: Only load CSS for blocks present on the page
add_filter( 'should_load_separate_core_block_assets', '__return_true' );

// =========================================================================
// 5. SECURITY HARDENING
// =========================================================================

// Disable XML-RPC (Major security risk)
add_filter( 'xmlrpc_enabled', '__return_false' );

// Remove X-Pingback Header
add_filter( 'wp_headers', function( $headers ) {
    unset( $headers['X-Pingback'] );
    return $headers;
});

// Block User Enumeration (Scans for /?author=1)
function pro_optim_block_user_enumeration() {
    if ( ! is_admin() && isset( $_REQUEST['author'] ) && preg_match( '/\d/', $_REQUEST['author'] ) ) {
        wp_redirect( home_url(), 301 );
        exit;
    }
}
add_action( 'template_redirect', 'pro_optim_block_user_enumeration' );

// Disable REST API for Users Endpoint ONLY (Prevents listing users via JSON)
add_filter( 'rest_endpoints', function( $endpoints ) {
    if ( isset( $endpoints['/wp/v2/users'] ) ) {
        unset( $endpoints['/wp/v2/users'] );
    }
    if ( isset( $endpoints['/wp/v2/users/(?P<id>[\d]+)'] ) ) {
        unset( $endpoints['/wp/v2/users/(?P<id>[\d]+)'] );
    }
    return $endpoints;
});

// =========================================================================
// 6. ADMIN & PERFORMANCE TWEAKS
// =========================================================================

// Limit Heartbeat API to 60 seconds (saves CPU)
add_filter( 'heartbeat_settings', function( $settings ) {
    $settings['interval'] = 60;
    return $settings;
});

// Disable Self Pingbacks
add_action( 'pre_ping', function( &$links ) {
    $home = get_option( 'home' );
    foreach ( $links as $l => $link ) {
        if ( 0 === strpos( $link, $home ) ) {
            unset( $links[$l] );
        }
    }
});

// Disable Auto-Update Emails (Keep dashboard clean)
add_filter( 'auto_core_update_send_email', '__return_false' );
add_filter( 'auto_plugin_update_send_email', '__return_false' );
add_filter( 'auto_theme_update_send_email', '__return_false' );
×
完整的清理加固代码升级版带禁止谷歌字体和禁止图片裁剪

完整的清理加固代码升级版带禁止谷歌字体和禁止图片裁剪

<?php /** * Compl...