/* Plugin Name: SchmidtKing – Erweiterter Script-Cleaner Description: Entfernt externe CDNJS- und jsDelivr-Skripte direkt aus dem HTML-Ausgabequelltext zur DSGVO/TDDDG-Konformität. Version: 1.1 Author: SchmidtKing */ function schmidtking_start_output_buffering() { ob_start('schmidtking_clean_output'); } add_action('template_redirect', 'schmidtking_start_output_buffering'); function schmidtking_clean_output($buffer) { // Entferne jsDelivr und CDNJS #is', '', $buffer); $buffer = preg_replace('#]+src=["']https://cdnjs.cloudflare.com/.*?#is', '', $buffer); return $buffer; } /* Plugin Name: SchmidtKing – Externe Skripte blockieren & ersetzen Description: Blockiert automatisch externe Skripte von CDNJS und jsDelivr und ersetzt sie durch lokale Versionen zur DSGVO-Konformität. Version: 1.0 Author: SchmidtKing */ function schmidtking_deregister_conflicting_scripts() { global $wp_scripts; if (!is_admin()) { foreach ($wp_scripts->registered as $handle => $script) { if ( strpos($script->src, 'cdn.jsdelivr.net') !== false || strpos($script->src, 'cdnjs.cloudflare.com') !== false ) { wp_deregister_script($handle); } } } } add_action('wp_enqueue_scripts', 'schmidtking_deregister_conflicting_scripts', 1); function schmidtking_enqueue_replacements() { $base_url = plugin_dir_url(__FILE__) . 'js/'; wp_enqueue_script( 'keen-slider-local', $base_url . 'keen-slider.min.js', array(), null, true ); wp_enqueue_script( 'lazyload-local', $base_url . 'lazyload.min.js', array(), null, true ); } add_action('wp_enqueue_scripts', 'schmidtking_enqueue_replacements', 100);